gpt4 book ai didi

java - 使用 GUI (Java) 启动线程

转载 作者:行者123 更新时间:2023-11-29 07:47:05 25 4
gpt4 key购买 nike

每当调用线程中的 run 方法时,我的 GUI 就会卡住,有人知道为什么吗?

主要内容:

try {
// Set System Look and Feel
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (UnsupportedLookAndFeelException e) {
// handle exception
} catch (ClassNotFoundException e) {
// handle exception
} catch (InstantiationException e) {
// handle exception
} catch (IllegalAccessException e) {
// handle exception
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrame frame = new MainFrame(null, null);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});

从线程运行方法:

public void run() {
while (true) {
System.out.println("test");
}
}

应该启动线程的actionListener:

private ActionListener btnStartListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
robot.run();
}
};




public class RobotThread implements Runnable {
@Override
public void run() {
while (true) {
System.out.println("test");
}
}

最佳答案

那是因为 run() 方法没有启动一个新的线程。假设您的 robot 引用引用了 Runnable 的实例,您需要调用以下代码;

new Thread(robot).start();

调用start() 将启动一个新线程,并在其上调用run() 方法。当前,您的 run() 方法正在调用它的同一线程上运行(在您的实例中是事件调度线程)。

关于java - 使用 GUI (Java) 启动线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24754469/

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