0

我从调色板创建了一个JFrame ClassNetbeans 7.3添加了两个面板。我在第一个面板中添加了一个按钮,单击该按钮我想在第二个面板(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();

}             
4

1 回答 1

1

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

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

于 2013-04-03T12:32:02.883 回答