gpt4 book ai didi

java - 为什么线程不能正常 hibernate ?

转载 作者:行者123 更新时间:2023-11-30 04:28:30 24 4
gpt4 key购买 nike

我正在尝试制作一个简单的 JButton,单击它会导致简单的 JLabel 将其文本更改为“第二个文本”,之后我希望当前线程 hibernate 几秒钟,最后 JLabel 更改其文本再次,这次是“第三文本”。我想我已经在这里完成了,但它并没有按照我想要的方式工作。下面提供的代码使 JButton 卡住指定的时间范围,就像按住一样,然后标签更改为第三种状态。换句话说,“秒文本”不会出现。

请告诉我该怎么做。

谢谢。

package testPackage;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Demo {

public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame();
JButton button = new JButton("Click me!");
final JLabel label = new JLabel("first text");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
JPanel panel = new JPanel();
panel.add(button);
panel.add(label);
button.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
label.setText("second text");
try {
Thread.currentThread();
Thread.sleep(4000);
} catch (InterruptedException exc) {
System.out.println("Erorrrrr");
}

}
});

frame.add(panel);
frame.setVisible(true);
}

}

最佳答案

当您考虑 Java 的内部结构时,要看到结果,文本属性的更改并不是唯一要做的事情。该控件还必须重新绘制(可能无效)。

通过调用 sleep,您实际上阻止了 java GUI 内部工作人员重绘您更改的控件。它只能在 sleep 完成后发生。

关于java - 为什么线程不能正常 hibernate ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15225411/

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