gpt4 book ai didi

java - 在Jframe中添加循环

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

大家好,我需要一些帮助我正在尝试制作网站检查器并将结果放入 Jframe 中,但这似乎比我想象的要难因为当我用 Thread 在 Jframe 中进行循环时.. Jframe 卡住并且没有任何工作.. 有一个简单的原因吗?抱歉我的英语不好..我是你来自叙利亚的 friend :)这是我的代码

private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     

while(true)
{
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
try{

InetAddress[] addresses = InetAddress.getAllByName("www.google.com");
for (InetAddress address : addresses) {
if (address.isReachable(10000))
{
t1.setText("okay");

System.out.println("Connected "+ address);
}
else
{
System.out.println("Failed "+address);
}
}
}catch ( Exception e )
{}

}

最佳答案

不要在监听器中使用 Thread.sleep()。此代码将在事件调度线程 (EDT) 上执行,该线程负责处理事件和重新绘制 GUI。通过使用 sleep(),您可以防止 GUI 响应事件并重新绘制自身。

相反,您需要创建一个单独的线程来检查您的网站。

阅读 Swing 教程中关于 Concurrency in Swing 的部分了解更多信息。您可能应该使用本教程中介绍的 Swing Worker

关于java - 在Jframe中添加循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45404130/

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