Java中简单GUI的可视化问题

时间:2014-03-19 13:40:01

标签: java jframe

我用Java做了一个非常简单的GUI但是当我运行程序时,GUI表现得很糟糕!

我运行应用程序时:GUI显示如下:

enter image description here

一旦我将其最小化并将其恢复,它显示正常,如下:

enter image description here

这是非常简单的代码:

public class Prova2 {

public static void main(String[] args) {

    JFrame frame = new JFrame("A Simple GUI");
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setSize(650, 120);
    frame.setLocation(430, 100);

    JPanel panel = new JPanel();
    frame.add(panel);

    JLabel lbl = new JLabel("Select one of the possible choices and click OK");;
    lbl.setVisible(true);   
    panel.add(lbl);

    String[] choices = { "CHOICE 1","CHOICE 2", "CHOICE 3","CHOICE 4","CHOICE 5","CHOICE 6"};
    JComboBox<String> cb = new JComboBox<String>(choices);
    cb.setVisible(true);
    panel.add(cb);

    JButton btn = new JButton("OK");
    panel.add(btn);
  }
}

在运行应用程序时,为了显示GUI(显示所有元素),我缺少什么?

为了正确显示GUI,必须最小化窗口或调整窗口大小才会烦恼!

2 个答案:

答案 0 :(得分:1)

我测试了您的代码,问题是您在true内创建项目之前设置了JFrame的可见性。所以只需剪切frame.setVisible(true);并将其粘贴为构造函数的最后一行。

我也发现你并没有使用强烈推荐的布局管理器。查看this了解相关信息。

答案 1 :(得分:0)

  1. 使用布局管理器

  2. 遵循主要的Swing Toolkit原则:应该在EDT线程(UI线程)上操作和启动所有UI。这是一个非常好的解释http://www.pushing-pixels.org/2007/12/06/unwritten-rule-of-working-with-swings-edt.html