作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Swing 新手,但 Java 新手。我正在尝试以下操作:
public void actionPerformed(ActionEvent e) {
methodA();
pane.repaint();
methodB();
pane.repaint();
}
其中 methodB() 需要很长时间。我希望它绘制两次,但第一次绘制调用从未发生。就好像我这样做了:
public void actionPerformed(ActionEvent e) {
methodA();
methodB();
pane.repaint();
}
抱歉,如果这是基本的,但我尝试过搜索,但仍然不明白为什么。
我尝试过直接调用paint,它按预期工作,只是应用程序在每次重绘时都会闪烁。
最佳答案
actionPerformed
在事件调度线程 (EDT) 中调用,这也是执行绘制的地方,repaint
仅标记要重新绘制的组件。这意味着绘画只能在 actinPerformed
执行完成后才能完成。
不应在 EDT 中执行长时间运行的任务,请使用 SwingWorker或另一个线程。
表示学习Swing's Threading Policy !
关于java - 基本 Java Swing JFrame 重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60884088/
我是一名优秀的程序员,十分优秀!