我已将此actionlistener添加到按钮中:
//The ActionListener for the home button
ActionListener homeActionListener = new ActionListener(){
public void actionPerformed(ActionEvent e) {
removeAll();
Home home = new Home();
add(home);
}
};
这是jpanel和jbutton的代码:
//creating the jpanel which will hold the buttons
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(null);
buttonPanel.setBounds(0,0,600,100);
buttonPanel.setBackground(Color.GRAY);
add(buttonPanel);
//creating the jbutton to send the user to the home page
JButton home = new JButton("Home");
home.setBounds(25,25,100,50);
buttonPanel.add(home);
如何删除jframe的每个组件,除了名为buttonPanel的jpanel?
答案 0 :(得分:4)
setBounds
。虽然使用null布局似乎是新手创建复杂GUI的更好方法,但这是一个谬论,你创建Swing GUI越多,你学会尊重和使用布局管理器就越多,并且看到这些生物在创建灵活,美丽方面有很大帮助如果需要,复杂的GUI。然后,您可以通过在将它们设置为可见之前调用pack()来让它们适当地调整自己的大小。......以及MadP所说的话!
答案 1 :(得分:4)
一种可能的解决方案是创建一个中央面板,其中包含所有其他组件,而只需在此容器上使用removeAll
。
小心地在removeAll
上调用JFrame
,它会删除根本不是你想要的根窗格。
HovercraftFullEels所说的
答案 2 :(得分:1)
getContentPane().removeAll();
removeAll()删除框架上的所有组件。