Ich habe einen JFrame, der auf einer Seite in zwei geteilt ist Ich habe ein JPanel mit einigen JToggleButtons. auf der anderen Seite muss ich das richtige JPanel zeigen, wenn eines der JToggleButtons angeklickt wird. Im Moment verwende ich nur einen Thread, um dies zu tun.Ich brauche ein JPanel, das angezeigt wird, wenn ich auf einen JToggleButton klicke
hier ist die JFrame
public class AppFrame extends JFrame{
private JPanel content ;
private JPanel menu;
public AppFrame() {
super("Title");
setLayout(BorderLayout());
//content is gonna hold JPanel1 or JPanel2
content = new JPanel();
menu = new menu();
this.add(menu, BorderLayout.WEST);
this.add(content , BorderLayout.CENTER);
}
public void setContet(JPanel activePanel){
content = activePanel;
this.add(content , BorderLayout.CENTER);
}
}
hier ist die JPanel die JToggleButtons hält (MenuJPanel)
public class MenuJPanel extends JPanel{
private final LayoutManager innerLayout = new GridLayout(3,1,1,1);
private final JToggleButton button1;
private final JToggleButton button1;
public MenuPanel() {
super();
SwitchHandler sHandler = new SwitchHandler();
this.setLayout(innerLayout);
this.add(button1);
this.add(button2);
button1.addActionListener(sHandler);
button2.addActionListener(sHandler);
}
class SwitchHandler implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1){
button2.setSelected(false);
//at this point I want the frame to display JPanel1
//I tried this
AppFrame frame = (AppFrame)getTopLevelAncestor();
frame.setContet(new JPanel1());
} else {
button1.setSelected(false);
//at this point I want the frame to display JPanel2
//I tried this
AppFrame frame = (AppFrame)getTopLevelAncestor();
frame.setContet(new JPanel2());
}
}
}
Kann mir jemand sagen, wie kann ich diese Platten in den Rahmen zu öffnen, wenn das Ereignis ausgelöst wird . danke
[So verwenden Cardlayout] (http://docs.oracle.com/javase/tutorial/uiswing /layout/card.html) – MadProgrammer
Ich hatte es wirklich schwer nach Referenzen zu suchen, wie man das macht. Danke – LH88