为什么JFrame不会响应?

时间:2010-11-05 23:18:41

标签: java jframe jpanel

我有一个JFrame和两个JPanels。当我的程序启动时,它会将第一个JPanel添加到JFrameJFrame组件(x,最小化,KeyListener等)都可以正常工作。但是当我删除第一个JPanel并添加第二个JPanel时,JFrame的'x'按钮将无效,也不会KeyListenerMouseListener。如何让JFrame正常运行?

1 个答案:

答案 0 :(得分:0)

如果在对组件进行更改后基本的GUI操作停止运行,则很可能会违反Swing线程模型。 Swing是单线程的,您需要遵循一个简单的规则,确保影响GUI绘制的操作在Event Dispatch Thread中完成,否则您将面临死锁或其他不需要的行为的风险。

你有几个选择。您可以使用SwingWorker,也可以实例化Runnable并将其放入SwingUtilities.invokeLaterSwingUtilities.invokeAndWait。请查看this link有关Swing中线程的概念。