0
Swing的新手,但不是Java。我正在尝试以下操作:基本的Java Swing JFrame重新绘制
public void actionPerformed(ActionEvent e) {
methodA();
pane.repaint();
methodB();
pane.repaint();
}
where methodB()需要很长时间。我希望它画两次,但第一次的油漆电话从来没有发生过。这就像我做的那样:
public void actionPerformed(ActionEvent e) {
methodA();
methodB();
pane.repaint();
}
对不起,如果这是基本的,但我试过搜索,我仍然不明白为什么。
我已经尝试直接调用paint,除了应用程序在每次重绘时闪烁之外都按预期工作。
不同的场景,不同的调用,但相同的行为和相同的解决方案:[Java swing GUI冻结](https://stackoverflow.com/questions/11185485/java-swing-gui-freezes) – BackSlash
'repaint()'是绘制组件_soon_的请求(不是立即)。但是,如果'methodB'需要很长时间,它将阻塞事件分派线程,并且在完成之前没有任何内容会被重新绘制。考虑在另一个线程中运行'methodB'。 – khelwood