我用Java做了一个非常简单的GUI但是当我运行程序时,GUI表现得很糟糕!
我运行应用程序时:GUI显示如下:
一旦我将其最小化并将其恢复,它显示正常,如下:
这是非常简单的代码:
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,必须最小化窗口或调整窗口大小才会烦恼!
答案 0 :(得分:1)
我测试了您的代码,问题是您在true
内创建项目之前设置了JFrame
的可见性。所以只需剪切frame.setVisible(true);
并将其粘贴为构造函数的最后一行。
我也发现你并没有使用强烈推荐的布局管理器。查看this了解相关信息。
答案 1 :(得分:0)
使用布局管理器
遵循主要的Swing Toolkit原则:应该在EDT线程(UI线程)上操作和启动所有UI。这是一个非常好的解释http://www.pushing-pixels.org/2007/12/06/unwritten-rule-of-working-with-swings-edt.html