我对 JOptionPane.showInputDialog(...) 方法(以及 JJOptionPane 的其他方法)有一个奇怪的行为。创建的对话框似乎永远不会消失。当我在对话框消失后调用 Window.getWindows() 时,窗口的数量增加了!
测试这个程序,你就会明白我的意思:
public static void main(String[] args) {
final JFrame frame = new JFrame();
final JPanel panel = new JPanel();
final JButton button = new JButton("Show Dialog");
panel.add(button);
frame.add(panel);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
JOptionPane.showInputDialog(frame, "Enter some text : ");
System.out.println(Window.getWindows().length);
}
});
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
有人可以解释发生了什么吗?