Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    JDialog con JRadioButton

    Ciao a tutti
    Ho il seguente problema
    Praticamente ho realizzato un'interfaccia con 2 pannelli
    Pannello A e Pannello B
    Il Main parte direttamente con il Pannello A
    Quello che vorrei realizzare è questo:
    Una JDialog con 2 JRadioButton che si visualizzi prima di tutto
    Quindi con l'opportunità di scegliere con
    JRadioButton A ----> Pannello A
    JRadioButton B ----> Pannello B

    Devo rifare il Main o cosa ?

    Vi ringrazio

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JDialog con JRadioButton

    Originariamente inviato da jurij7
    Ho il seguente problema
    Praticamente ho realizzato un'interfaccia con 2 pannelli
    Pannello A e Pannello B
    Il Main parte direttamente con il Pannello A
    Quello che vorrei realizzare è questo:
    Una JDialog con 2 JRadioButton che si visualizzi prima di tutto
    Quindi con l'opportunità di scegliere con
    JRadioButton A ----> Pannello A
    JRadioButton B ----> Pannello B

    Devo rifare il Main o cosa ?
    Le tue domande, chissà perché, sono sempre alquanto confuse e poco indicative.

    Io ho capito questo: vuoi una dialog in cui ci siano 2 pannelli, di cui solo uno per volta è visualizzato in base allo stato di 2 radio button messi sempre nella stessa dialog (sopra .. sotto i pannelli .. o dove vuoi). Giusto?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Cerco di spiegarmi meglio
    Vorrei che prima di iniziare una esecuzione del programma mi apparisse una Jdialog (semmai anche con lo sfondo dell'interfaccia utente gia aperto che po sarebbe il pannello A) in primo piano, al centro che mi chiedesse "Cosa vuoi fare?", avendo a disposizione 2 jradiobutton.

    se seleziono jradiobutton1 e poi faccio ok vado al pannello A dell'interfaccia
    se seleziono jradiobutton2 e poi faccio ok vado al pannello B dell'interfaccia.

    Così come ho ora, quando faccio il run, si apre direttamente il pannello A.
    Quindi mi basterebbe che al run apparisse in primo piano una Jdialog dove poter scegliere avendo come sfondo il pannello A.
    Quindi se scelgo A..praticamente la jdialog scompare e resto nel pannello A che si apre normalmente.
    Se scelgo B..passa al Pannello B

    Spero di essere stato chiaro

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Una cosa del genere??

    codice:
    import java.awt.*;
    import javax.swing.*;
    
    public class TestFrame extends JFrame
    {
        private CardLayout cardLayout;
        private JPanel cardPanel;
    
        public TestFrame ()
        {
            super ("Test Frame");
            setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    
            cardLayout = new CardLayout ();
    
            cardPanel = new JPanel ();
            cardPanel.setLayout (cardLayout);
            cardPanel.add (new Pannello1 (), "pannello1");
            cardPanel.add (new Pannello2 (), "pannello2");
    
            getContentPane().add (cardPanel);
            pack ();
        }
    
        public void selectPanelAsk ()
        {
            JRadioButton radio1 = new JRadioButton ("Pannello 1");
            JRadioButton radio2 = new JRadioButton ("Pannello 2");
    
            ButtonGroup buttonGroup = new ButtonGroup ();
            buttonGroup.add (radio1);
            buttonGroup.add (radio2);
    
            Object[] message = { "Quale pannello vuoi?", radio1, radio2 };
    
            JOptionPane.showMessageDialog (this, message, "Selezione pannello", JOptionPane.QUESTION_MESSAGE);
    
            if (radio1.isSelected ())
                cardLayout.show (cardPanel, "pannello1");
            else if (radio2.isSelected ())
                cardLayout.show (cardPanel, "pannello2");
        }
    
        public static void main (String[] args)
        {
            SwingUtilities.invokeLater (new Runnable ()
            {
                public void run ()
                {
                    TestFrame f = new TestFrame ();
                    f.setVisible (true);
                    f.selectPanelAsk ();
                }
            });
        }
    }
    
    class Pannello1 extends JPanel
    {
        public Pannello1 ()
        {
            setBackground (Color.YELLOW);
            setPreferredSize (new Dimension (300, 300));
        }
    }
    
    class Pannello2 extends JPanel
    {
        public Pannello2 ()
        {
            setBackground (Color.RED);
            setPreferredSize (new Dimension (300, 300));
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Si esatto
    ma senza il frame che fa da sfondo.
    Cioè sullo sfondo io vorrei gia il pannello A (che poi è quello che si avvia con il run) ma disattivato finche non scelgo

    Il JFrame di fondo (cioè quello giallo) è indispensabile ?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    ma senza il frame che fa da sfondo.
    Ma non avevi detto che volevi il pannello A già aperto?? E quindi deve essere dentro un frame o dialog, no?

    Originariamente inviato da jurij7
    Cioè sullo sfondo io vorrei gia il pannello A (che poi è quello che si avvia con il run) ma disattivato finche non scelgo
    Infatti nel mio esempio, presentando una dialog con JOptionPane il frame (e i pannelli) non è subito usabile, bisogna prima fare la scelta.

    Originariamente inviato da jurij7
    Il JFrame di fondo (cioè quello giallo) è indispensabile ?
    Quello giallo è il Pannello1, che è dentro il frame.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Si capito
    ma la mia interfaccia non sta dentro un frame e non voglio metterla dentro un frame.
    Cioè vorrei semplicemente una jdialog prima di attivare quello che ho come sfondo o l'altro
    Quindi credo getPannelloA() oppure getPannelloB()

    Forse non si può fare

    Scusa hai ragione è dentro un frame



    Quindi praticamente dovrei integrare questo codice nel Main che ho già giusto?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    Cioè vorrei semplicemente una jdialog prima di attivare quello che ho come sfondo o l'altro
    Quindi credo getPannelloA() oppure getPannelloB()
    Ah ok. Quindi si tratta proprio di creare ed inserire nel container o uno oppure l'altro! (giusto?)

    Beh, ok. Presenti la dialog (un esempio è l'uso nel mio codice sopra di JOptionPane) e poi crei l'uno o l'altro e lo inserisci nel container, qualunque esso sia. Ma nota che se il container è già visibile, dopo l'add devi rivalidare il layout (in genere basta un revalidate() ma dipende anche dal layout manager).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Praticamente io nel Main, ho il Pannello A mentre il Pannello B ha una sua classe a parte.
    Quindi il sw parte direttamente dal Pannello A. Quando si è aperto il Pannello A posso arrivare al Pannello B tramite un JButton.

    Quindi cmq io dovrei integrare questa JOptionDialog nel Main in modo che al RUN mi si apre con dietro il Pannello A gia bello e pronto che aspetta la mia scelta.

    Sbaglio ad integrare oppure dovrei considerare una classe separata per il JOptionDialog che mi richiama il Main

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Ho provato ma non va
    Cioè Appare la Jdialog e come sfondo il pannello A
    Però innanzitutto mi sfasa la grandezza della finestrae dell'interfaccia (non capisco perchè) , cioè me la allarga facendola uscire lateralmente dallo schermo.

    Poi qualsiasi scelta io faccia rimane cmq nel Pannello A, qundi forse non ha nessun effetto la scelta
    Non so che fare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.