使用JFrame显示文本

时间:2015-04-11 16:04:51

标签: java swing

我正在尝试制作一个简单的计数器,但出现的窗口根本没有显示任何内容。不知道我做错了什么,但我觉得它与输出String没有正确更新有关。任何见解将不胜感激。毕竟只能是错的。

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;
    }
}

2 个答案:

答案 0 :(得分:0)

String输出等于null。

你从未对Java说过,这个字符串等于&#34;面包&#34;,例如。 但是Java需要这些信息,否则就没什么了。

如果您在之前输入创建JLabel,

output = "Bread";

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

答案 1 :(得分:0)

为了完成这项工作,你需要做以下事情:

  • 使用“It works”等特定文本创建JLabel并使其正确显示。在将JLabel添加到JFrame之后,这可能需要调用pack()和setVisible(true)。
  • 然后你需要开始计数过程。目前看来该方法不会被调用。
  • 最后,您需要使用新文本label.setText(String.valueOf(count)。
  • 更新JLabel。