【发布时间】:2016-11-15 21:49:37
【问题描述】:
要求是我有 2 个面板,即。面板 1,面板 2。 Panel1 将有 2 个按钮,当我单击任何按钮时,Panel 应动态显示特定于 Panel1 上该按钮的组件。
public class ListenerForRadioButton implements ActionListener{
JButton browseGlobal;
JFrame ParentFrame = new JFrame("Bla-Bla");
JPanel ChildPanel2 = new JPanel();
JButton upload ;
public ListenerForRadioButton(JFrame JFrameConstructor, JPanel JPanelConstructor, JButton uploadConstructor ){
this.ParentFrame = JFrameConstructor;
this.ChildPanel2 = JPanelConstructor;
this.upload = uploadConstructor;
}
public void actionPerformed(ActionEvent event){
//ChildPanel2.remove(upload);
ChildPanel2.remove(upload);
System.out.println("My listener is called");
}//方法结束 }//课程结束
公共类 Create_JFrame 扩展 JFrame{
public Create_JFrame(){
//Create a Frame
JFrame ParentFrame = new JFrame("Bla-Bla");
JPanel ChildPanel1 = new JPanel();
JPanel ChildPanel2 = new JPanel();
JButton Option1 = new JButton("Option1");
JButton browse = new JButton("Browse");
JButton upload = new JButton("Upload");
//Layout management
ParentFrame.getContentPane().add(BorderLayout.WEST, ChildPanel1);
ParentFrame.getContentPane().add(BorderLayout.EAST, ChildPanel2);
//Create a button
browse.addActionListener(new ListenerForRadioButton(ParentFrame,ChildPanel2,upload)); //Registering my listener
ChildPanel2.add(browse);
ChildPanel2.add(upload);
ChildPanel1.add(Option1);
//Make the frame visible
ParentFrame.setSize(500, 300);
ParentFrame.setVisible(true);
}//end of Main
}//end of Class
【问题讨论】:
-
几乎任何以“删除所有组件”开头的问题陈述都可以使用
CardLayout更好地解决,如this answer 所示。