gpt4 book ai didi

java - 对话服务器死

转载 作者:行者123 更新时间:2023-11-30 07:24:49 24 4
gpt4 key购买 nike

我对 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);
}

谁能解释一下发生了什么?

最佳答案

Someone understand what happens?

Window.getWindows() 总是每 Top-Level Containers 返回一次在 current JVM 中创建(没有容器返回 !isDisplayable),这些容器永远不会从 JVM 内存 中消失,也不会被 GC 'ed,因为它们是来自 Native OS 的资源,more here

关于java - 对话服务器死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11265927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com