而True循环阻止应用程序加载:Java Netbeans
尝试在GUI中实现一个简单的时钟,该GUI将不断更新时间。我决定将标签设置为与日历输出等效的字符串,并将其固定在while true循环中。问题是当我尝试这样做时,应用程序永远不会打开。没有错误消息或任何东西,它只是无法打开 我将应用程序分为几个单独的java类: 时间设置代码:而True循环阻止应用程序加载:Java Netbeans,java,netbeans,netbeans-8,Java,Netbeans,Netbeans 8,尝试在GUI中实现一个简单的时钟,该GUI将不断更新时间。我决定将标签设置为与日历输出等效的字符串,并将其固定在while true循环中。问题是当我尝试这样做时,应用程序永远不会打开。没有错误消息或任何东西,它只是无法打开 我将应用程序分为几个单独的java类: 时间设置代码: package prototype; import java.util.Date; /** * * @author PC */ public class TimeAndDate { Date date =
package prototype;
import java.util.Date;
/**
*
* @author PC
*/
public class TimeAndDate {
Date date = new Date();
void timedisplay(javax.swing.JLabel a){
String hours = String.valueOf(date.getHours());
String minutes = String.valueOf(date.getMinutes());
String seconds = String.valueOf(date.getSeconds());
while(true){
a.setText(hours + ":" + minutes + ":" + seconds);
}
}
使用上述方法的主GUI窗体的代码
package prototype;
import javax.swing.JLabel;
/**
*
* @author PC
*/
public class MainMenu extends javax.swing.JFrame {
/**
* Creates new form MainMenu
*/
public MainMenu() {
TimeAndDate time = new TimeAndDate();
initComponents();
time.timedisplay(dateLbl);
}
如果我执行for循环,代码正常工作(但当然时间不会更新)。我唯一的猜测是,拥有一个无限循环会给程序带来太多无法处理的问题,但我找不到任何关于这个问题的东西(或处理它)。想知道我怎样才能让这个时钟刷新。干杯。一个词:计时器。我建议你在这个问题上加上摇摆标记。我相信您的问题在于您正在用while循环阻塞gui线程。你不允许其他任何东西运行。阅读有关使用秋千计时器的内容,你会没事的。