JRadioButton no JOptionPane.showInputDialog

8 respostas
levimendes

Olá pessoal,

Alguém de vocês sabe se é possível inserir JRadioButtons no JOptionPane.showInputDialog?

8 Respostas

Anime

Oi levimendes,

Interessante,não conhecia essa possibilidade…

Será que é isso que você quer…http://www.roseindia.net/java/example/java/swing/SelectRadioButton.shtml

http://www.homeandlearn.co.uk/java/java_radio_buttons.html

levimendes

Oi Anime,

na verdade eu quero inserir os JRadioButtons diretamente no JOptionPane.

Anime

levimendes:
Oi Anime,

na verdade eu quero inserir os JRadioButtons diretamente no JOptionPane.

rsrs…vê se é isso… :wink:

http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html

Me conta… :roll:

levimendes

Eu estava usando este material, mas pelo que eu percebi não é possível inserir os JRadioButtons.

Eric_Yuzo

Possível até é. Teria que passar um array com os radio buttons no parâmetro onde geralmente se passa as mensagens. Mas porque não implementar um JDialog?

levimendes

Daria um certo trabalho a mais do que simplesmente adioná-los ao JOptionPane, certo?

E

O JOptionPane não foi feito para ser tão genérico assim (embora você até consiga pôr um combo nele). Se possível, use um JDialog. Muitas vezes você precisa é de um JDialog com um monte de abas (tabs), porque esse tipo de coisa que você está fazendo “travando” o seu programa as vezes pode ser resolvido via configuração mesmo.

levimendes

Se alguém quiser, aí está minha implementação do JDialog:

public static void openJanelaParaConfirmacaoPanelDesejado() {
        final JDialog dialogo = new JDialog(new JFrame(),"Copiar", true);
        dialogo.setSize(400,100);
        dialogo.setLayout(new FlowLayout());
        dialogo.setResizable(true);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension dialogoSize = dialogo.getSize();
        dialogo.setLocation((screenSize.width - dialogoSize.width) / 2,
                           (screenSize.height - dialogoSize.height) / 2);
        //final JRadioButton radioTreeView1 = new JRadioButton("MaquinaDeContexto.getCurrentTreeView1Path()");
        //final JRadioButton radioTreeView2 = new JRadioButton("MaquinaDeContexto.getCurrentTreeView2Path()");
        MaquinaDeContexto.getCurrentTreeView1Path();
        final JRadioButton[] radioTreeView = new JRadioButton[2];
        
        radioTreeView[0] = new JRadioButton("Treeview 1");
        radioTreeView[1] = new JRadioButton("Treeview 2");
        
        JButton buttonFecharDialogo;
        JButton buttonOK;
        ButtonGroup bg = new ButtonGroup();
        JPanel panel = new JPanel();
        panel.setOpaque(true);
        bg.add(radioTreeView[0]);
        bg.add(radioTreeView[1]);
        
        panel.add(radioTreeView[0]);
        panel.add(radioTreeView[1]);
        
        dialogo.add(panel);
        
        buttonOK = new JButton("OK");
        buttonOK.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                if (radioTreeView[0].isSelected() == false && radioTreeView[1].isSelected() == false) {
                    ADFExceptionHandler.displayMessage("Selecione a Treeview Desejada");
                    return;
                }
                
                if (radioTreeView[0].isSelected()) {
                    Ouvidoria.copiarLinhasSelecionadas(MaquinaDeContexto.getUpperGridPanel().getTable());
                }
                if (radioTreeView[1].isSelected()) {
                    Ouvidoria.copiarLinhasSelecionadas(MaquinaDeContexto.getLowerGridPanel().getTable());
                }
                
                dialogo.dispose();
            }
        });
        dialogo.add(buttonOK);
        
        buttonFecharDialogo = new JButton("Fechar");
        buttonFecharDialogo.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    dialogo.dispose();
                }
        });
        
        dialogo.add(buttonFecharDialogo);
        //dialogo.setLocationRelativeTo();
        dialogo.setVisible(true);
    }
Criado 19 de novembro de 2010
Ultima resposta 23 de nov. de 2010
Respostas 8
Participantes 4