donné le code suivant:par défaut après disposer et setVisible
public class DialogTest implements ActionListener {
public static void main(String[] args) {DialogTest g = new DialogTest();}
public DialogTest() {
JButton b1 = new JButton("Button A");
b1.addActionListener(this);
JDialog d = new JDialog();
d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
JPanel p = new JPanel();
p.add(b1);
d.add(p);
d.getRootPane().setDefaultButton(b1);
d.pack();
d.setVisible(true);
d.dispose();
d.pack();
d.setVisible(true);
}
public void actionPerformed(ActionEvent e) {System.out.println("hello");}
}
ne devrait pas appuyer sur la touche Saisir des données d'écriture à la console? Selon les docs (http://java.sun.com/javase/7/docs/api/java/awt/Window.html#dispose()):
La fenêtre et ses sous-composants être fait affichable à nouveau par la reconstruction des ressources indigènes avec un appel ultérieur à emballer ou spectacle. Les états de la fenêtre et recréée ses seront identiques sous-composants aux états de ces objets au point où la fenêtre était disposée
Est-ce prévu comportement?
J'ai essayé de l'exécuter et il fonctionne très bien, ne sais pas pourquoi vous avez un Éliminez() dans votre constructeur. Pouvez-vous clarifier votre question? que demandez-vous ? –
Bien que je ne puisse pas expliquer le comportement, je peux le reproduire. 'd.getRootPane(). getDefaultButton()' retourne 'null' dès que' dispose() 'a été appelé. –
Juste être curieux. Pourquoi fais-tu 'disposition()', puis un 'pack()' et encore 'setVisible (true)'? –