使用 JFrame 显示文本



我正在尝试制作一个简单的计数器,但出现的窗口根本没有显示任何内容。不确定我做错了什么,但我觉得这与输出字符串未正确更新有关。任何见解将不胜感激。终究只能是错的。

import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class main {
public static int counter = 0;
public static int end = 100;
public static String output;
public static void main (String[] args){
    window();
}
public static void window(){
    JLabel label = new JLabel(output, JLabel.CENTER);
    label.setAlignmentX(0);
    label.setAlignmentY(0);
    JFrame window = new JFrame("");
    window.setVisible(true);
    window.setSize(500,500);
    window.add(label);
}
public static void counter(String counter1) throws InterruptedException{
    Random rand = new Random();
    int start = 0;
    for(int i =0; i < end; i++){
        int random = rand.nextInt(60) + 1;
        start ++;
        if (start != 0){
            for(int z =0; z <= random; z++){
                counter ++;
                System.out.print(counter);
                Thread.sleep(1000);
            }
        }
        counter = 0;
        start = 0;
    }
}

字符串输出等于 null。

例如,你从来没有对Java说,这个字符串等于"面包"。但是Java需要这些信息,否则什么都不是。

如果您在创建 JLabel 之前打字,

output = "Bread";

它应该在屏幕上显示面包。

您需要执行以下操作才能完成此操作:

  • 使用一些特定的文本(如"它有效")创建 JLabel 并使其正确显示。这可能需要在将 JLabel 添加到 JFrame 后调用 pack() 和 setVisible(true)。
  • 然后,您需要开始计数过程。目前看起来没有调用该方法。
  • 最后,您需要使用新的文本 label.setText(String.valueOf(count) 更新 JLabel。

最新更新