在Java Swing中将按钮添加到JPanel

我将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。 我无法找到为什么不显示按钮。 任何帮助表示赞赏。

如果布局为null,则意味着您必须使用setBounds()方法来定位添加到JPanel的组件。 你当前没有这样做,所以我认为无论是在JPanel之外,还是在你的JComboBox之下,都会绘制按钮。
无论如何,如果你想要在特定位置按钮,你必须告诉它们,这不会像使用除null之外的Layout那样自动。