class dynmaicBtnListener implements java.awt.event.ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("new button clicked.");
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
CenterViewPanel.setLayout(new BoxLayout(CenterViewPanel, BoxLayout.Y_AXIS));
JButton newbtn = new JButton("MyDynamicButton");
newbtn.addActionListener(new dynmaicBtnListener ());
CenterViewPanel.add(newbtn);
// CenterViewPanel.validate();
// CenterViewPanel.repaint();
CenterViewPanel.revalidate();
}
使用上面的代码可以动态增加控件。
CenterViewPanel 是一个JPanel控件在动态增加控件的时候,必须在add之前调用layout设置方法。不然没有效果。
CenterViewPanel.setLayout(new BoxLayout(CenterViewPanel, BoxLayout.Y_AXIS));
在add之后要调用
CenterViewPanel.validate();
CenterViewPanel.repaint();
或
CenterViewPanel.revalidate();
去刷新重绘控件。