JOptionPane Passant Boutons Personnalisés

Je vais essayer d'obtenir la valeur retournée par boutons personnalisés passé à JOptionPane. Cependant les boutons j'en passe ne retourne pas une valeur à tous. Seulement lors de la sortie bouton est pressé est une valeur de -1 est retourné. J'ai besoin de cela parce que je suis l'évolution des propriétés des boutons activé ou désactivé. Je suppose que j'ai besoin de l'boutons pour retourner des informations à l'JOptionPane d'une certaine façon. Une idée?

    JButton button1= new JButton("Button 1");
    JButton button2= new JButton("Button 2");

    button1.setEnabled(false);

    int value = JOptionPane.showOptionDialog(null, "Heres a test message", "Test", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[]{button1, button2}, button1);
    JOptionPane.showMessageDialog(null, "You entered " + value);

Nb Ceci est lié à ma question précédente - JOptionPane Gris Un Bouton

J'ai essayé de définir la valeur de l'boutons comme vous l'avez dit, mais ils n'ont jamais de retour sur OK ou sur ANNULER.

Chaque fois que la vérification de la valeur des boutons, ils n'ont jamais retourner la valeur que j'ai mis trop.

    JButton button1= new JButton("Button1");
    JButton button2= new JButton("Button2");

    button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane pane = getOptionPane((JComponent)e.getSource());
                //set the value of the option pane
                pane.setValue(JOptionPane.OK_OPTION);
            }
        });

    button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane pane = getOptionPane((JComponent)e.getSource());
                //set the value of the option pane
                pane.setValue(JOptionPane.CANCEL_OPTION);
            }
        });

      if (JOptionPane.showOptionDialog(null, "Pick a button", "Pick", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[]{button1, button2}, button1) == JOptionPane.OK_OPTION) {
           JOptionPane.showMessageDialog(null, "Button1");
      }
      else{
           JOptionPane.showMessageDialog(null, "Button2");
      }

Voir ci-dessus, j'ai toujours obtenir le bouton2 popup n'importe quoi.

Veuillez voir le modifier pour répondre.

OriginalL'auteur user2020457 | 2013-01-29