如何在Click事件中从contentPane中删除所有JFrame
个组件?
以下是代码:
final JButton b = new JButton("Table");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println(b.getText());
contentPane.removeAll();//PRessing the button, it does not go away
}});
contentPane.add(b);
如果我在actionPerformed function
之外使用contentPane.removeAll();
contentPane.removeAll();
然后它运作良好
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setJMenuBar(AppViewMenu.getMenu(this));
setTitle("Simple examplesss");
setSize(500, 600);
setLocationRelativeTo(null);
setVisible(isVisible);
谢谢
答案 0 :(得分:2)
您可以使用removeAll()
方法,但在Swing中它不是首选方法。更好的方法是提供两个视图,这些视图使用CardLayout放置在一个面板中,并且在ActionListener
中可以切换视图。
如果您仍想使用removeAll()
,则应在此之后致电revalidate()
和repaint()
。
public void actionPerformed(ActionEvent e) {
contentPane.removeAll();
contentPane.revalidate();
contentPane.repaint();
}