Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的秒表程序中的jLabel.setText问题_Java_Swing - Fatal编程技术网

Java 我的秒表程序中的jLabel.setText问题

Java 我的秒表程序中的jLabel.setText问题,java,swing,Java,Swing,我正在尝试用Java制作秒表,并取得了一些成功。如果我这样做,它会打印到外壳上 System.out.println(分钟+“:“+秒+”:“+毫秒) 但是,如果我这样做了 timerLbl.setText(分钟+”:“+秒+”:“+毫秒) 什么也没发生 public class rubiksTimer extends javax.swing.JFrame { static int scrambleImage = 1; static int timesImage = 1; static int

我正在尝试用Java制作秒表,并取得了一些成功。如果我这样做,它会打印到外壳上

System.out.println(分钟+“:“+秒+”:“+毫秒)

但是,如果我这样做了

timerLbl.setText(分钟+”:“+秒+”:“+毫秒)

什么也没发生

public class rubiksTimer extends javax.swing.JFrame {
static int scrambleImage = 1;
static int timesImage = 1;
static int start = 0;
static int stop1 =0;
static int millisec =0;
static int sec =0;
static int min =0;
static int press =1;

Timer timer = new Timer();
TimerTask task = new TimerTask(){
    public void run() {
    millisec++;
    if (millisec>9) {
        millisec = 0;
        sec++;
    }
    if (sec>59){
        sec=0;
        min++;
    }
    timerLbl.setText(min+":"+sec+":"+millisec);

    }
};

public void start(){
    timer.scheduleAtFixedRate(task,1000,100);


} 

1) 我同意@FastSnail——使用Swing计时器,因为这不会冻结Swing事件线程,也不会像java.util.Timer那样导致间歇性难以调试的线程错误。2) 另外,如果你想要一个更完整的答案,你需要改进你的问题,并尝试提出一个更完整的问题,包括更多的代码、最好的答案和更多的解释。3) 一些附带建议:避免过度使用静态字段和方法,因为这样会增加代码的互连性(圈复杂度),增加bug的风险。此外,您还需要学习和使用。变量名都应该以小写字母开头,而类名应该以大写字母开头。学习这一点并遵循这一点可以让我们更好地理解您的代码,也可以让您更好地理解其他人的代码。此外,还可以去掉所有静态变量。这表明类的设计很糟糕。另外,请阅读一些关于Swing和Oracle Java trails中的事件驱动编程模型的内容。理解基于控制台的应用程序和GUI应用程序的区别是至关重要的。控制台应用程序以线性方式运行,而GUI应用程序则通过对事件作出反应来运行。