在JavaSwing中向JPanel添加按钮

在JavaSwing中向JPanel添加按钮,java,swing,Java,Swing,我在JPanel中添加了一个JLabel和JCombobox。这很好用。但是当我再添加两个按钮时,我看不到这些按钮 下面是我的代码: JPanel jPanel=new JPanel(); jPanel.setLayout(null); JLabel label = new JLabel("Welcome"); label.setFont(new Font("Helvetica", Font.ROMAN_BASELINE, 13));

我在JPanel中添加了一个JLabel和JCombobox。这很好用。但是当我再添加两个按钮时,我看不到这些按钮

下面是我的代码:

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。 我找不到为什么按钮不显示。
非常感谢您的帮助。

如果布局为空,则意味着您必须使用
setBounds()
方法定位添加到
JPanel
中的组件。您当前没有这样做,因此我认为按钮是在
JPanel
外部或
JComboBox
下方绘制的

无论如何,如果你想让你的按钮处于特定位置,你必须告诉他们,这不会像使用非空的
布局时那样是自动的。

发布整个代码,包括添加标签和组合框的代码。不要使用空布局,而是使用适当的布局管理器!Dan我现在已经发布了整个代码..如果您使用布局为null,那么使用一些正常值设置边界(x,y,width,height),如:(20,20,100,20)。不要从首选尺码中选择尺码。现在可以了。谢谢大家…嗨,miNde,我用过setBounds(),但我不明白。请现在查看代码。