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