您好,我有以下问题:
public class TestCombo extends JFrame{
public TestCombo() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200,200);
setVisible(true);
setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2,4));
JLabel l1 = new JLabel("test1");
JLabel l2 = new JLabel("test2");
panel.add(l1);
panel.add(l2);
// JComboBox<String> combo = new JComboBox<String>();// <-- uncomment this for the problem
this.add(panel, BorderLayout.NORTH);
}
public static void main(String[] args) {
new TestCombo();
}
}
正如您所看到的,我正在做一个非常简单的例子。如果我取消注释标记的部分,则不显示标签项。如果我调整窗口大小,它们会再次可见。这里奇怪的是我甚至没有将combo
添加到面板或任何地方。我只是在实例化它。
有人能告诉我为什么我需要调整框架大小以查看标签吗?我做错了吗?
答案 0 :(得分:5)
你刚开始做setVisible(true)
。
您应该在添加所有组件后执行此操作。
答案 1 :(得分:1)
我认为这不是JComboBox的有效语法
JComboBox<String> combo = new JComboBox<String>();
应该是
JComboBox combo = new JComboBox();
同样setVisible(true);
应该在this.add(panel, BorderLayout.NORTH);
之后。