运行时无法将JButton添加到JPanel

时间:2011-11-02 11:06:04

标签: java swing user-interface netbeans jpanel

我想在点击按钮后将JButton添加到JPanel,所以这是我的代码:

   JButton testButton = null;

   private void sendmessageButtonActionPerformed(java.awt.event.ActionEvent evt) {
       testButton = new JButton();       
       totalPane.add(testButton,BorderLayout.CENTER);
       totalPane.revalidate();
       totalPane.repaint();
    }

我正在使用Netbean GUI构建器。当我点击时,没有任何反应。有谁可以帮助我?

3 个答案:

答案 0 :(得分:2)

您的代码对于标准Swing JComponents

是正确的

1)totalPane已初始化

2)将totalPane添加到Container

3)在容器中可见totalPane

4)totalPaneBorderLayout,默认情况下FlowLayout是<{3}}

您可以通过将BorderstotalPane.setBorder(BorderFactory.createLineBorder(Color.red));)添加到totalPane

来测试它

答案 1 :(得分:0)

添加按钮的代码是正确的,虽然你对repaint()的调用不会实现任何东西 - revalidate()就足够了。

我的猜测是你的sendmessageButtonActionPerformed-method永远不会被调用。它看起来不像是ActionListener或任何其他侦听器的任何方法。如何在触发添加的按钮上设置ActionListener?

答案 2 :(得分:0)

请调试您的代码并检查您的方法是否已执行。如果不是,那么我们就知道问题了,你必须确保你的方法被执行。

请注意,除了您的方法之外,您还可以在初始化时创建按钮并将其可见性设置为false。当您需要它时,您可以使其可见。但是,您的方法应该有效。