gpt4 book ai didi

java - 基本 Java Swing JFrame 重绘

转载 作者:行者123 更新时间:2023-12-01 17:44:36 24 4
gpt4 key购买 nike

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/

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