gpt4 book ai didi

java - for循环退出后背景颜色发生变化。谁能解释一下吗?

转载 作者:行者123 更新时间:2023-12-02 03:30:53 26 4
gpt4 key购买 nike

CellPane 是一个 JPanel。在构造函数中,我添加了一个鼠标监听器。单击时,背景应更改为蓝色,然后在控制台上打印值。但问题是首先打印值,然后背景发生变化。为什么?

public CellPane() {
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
defaultBackground = getBackground();
setBackground(Color.BLUE);
for(int i=0;i<1000000;i++)
{
System.out.println(i);
}
}

@Override
public void mouseExited(MouseEvent e) {
setBackground(defaultBackground);
}
});
}

最佳答案

因为颜色仅在组件重新绘制时才会改变。重绘发生在 Swing 线程(只有一个线程)上,该线程与事件处理程序运行的线程相同。因此,如果捕获线程而不立即返回,就会延迟重绘。并且您的打印也会在重绘之前发生。

关于java - for循环退出后背景颜色发生变化。谁能解释一下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38114253/

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