我将JLabel和JCombobox附加到JPanel.This工作正常。但是当我再添加两个按钮时,我看不到这些按钮。
以下是我的代码:
JPanel jPanel=new JPanel();
jPanel.setLayout(null);
JLabel label = new JLabel("Welcome");
label.setFont(new Font("Helvetica", Font.ROMAN_BASELINE, 13));
jPanel.add(label);
JComboBox combo = new JComboBox(comboboxbean);
combo.setPreferredSize(new Dimension(285, 20));
combo.setFont(new Font("Helvetica", Font.ROMAN_BASELINE, 13));
jPanel.add(combo);
startButton = new JButton("Start");
stopButton = new JButton("Stop");
startButton.addActionListener(this);
startButton.setActionCommand("enable");
jPanel.add(startButton);
stopButton.addActionListener(this);
stopButton.setActionCommand("enable");
jPanel.add(stopButton);
Insets insets = jPanel.getInsets();
Dimension size = label.getPreferredSize();
label.setBounds(20 + insets.left, 30 + insets.top,
size.width, size.height);
Dimension size1 = combo.getPreferredSize();
combo.setBounds(20 + insets.left, 65 + insets.top,
size1.width, size1.height);
Dimension size2 = startButton.getPreferredSize();
startButton.setBounds(20 + insets.left, 100 + insets.top,
size2.width, size2.height);
Dimension size3 = stopButton.getPreferredSize();
stopButton.setBounds(20 + insets.left, 130 + insets.top,
size3.width, size3.height);
frame.add(jPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
最后,我将JPanel添加到JFrame中。我已将JPanel的布局设置为null。 我无法找到为什么不显示按钮。 任何帮助表示赞赏。
答案 0 :(得分:2)
如果布局为null,则表示您必须使用setBounds()
方法来定位添加到JPanel
的组件。您目前没有这样做,所以我认为按钮是在JPanel
之外,还是在JComboBox
之下。
无论如何,如果你想要按特定位置的按钮,你必须告诉他们,这不会像使用Layout
而不是null一样自动。