【问题标题】:Adding JButton dynamically to the JPanel not working with Netbeans将 JButton 动态添加到 JPanel 不适用于 Netbeans
【发布时间】:2013-04-03 09:23:09
【问题描述】:

我用Netbeans 7.3 创建了一个JFrame Class,并从调色板中添加了两个面板。 我在第一个面板中添加了一个按钮,单击该按钮我想在第二个面板(topoPane)中添加一个新按钮。

下面是我为此编写的按钮单击事件。但是,即使调用事件,按钮也不会添加到面板中。 请告诉我其中有什么问题。

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) 
{                                      
    // TODO add your handling code here:

    System.out.println("Creating the Button");        
    JButton but = new JButton();
    but.setBackground(Color.red);
    but.setText("New Button");
    but.setBounds(500, 500, 500, 500);

    topoPane.add(but);
    topoPane.revalidate();

}             

【问题讨论】:

    标签: java swing layout jframe jpanel


    【解决方案1】:

    从您对setBounds 的使用来看,很明显您使用的是null 布局。因此,您需要调用repaint(),因为没有布局的容器不会自动在revalidate 上重新绘制添加的组件。

    除了调用repaint 是一种很好的做法之外,布局管理器可以消除进行此调用以及管理组件的大小和定位的需要。这使得使用layout manager 成为一个很好的理由。

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 2011-05-06
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多