私はJFrameを片側に2つに分割しています。JToggleButtonsを持つJPanelを持っています。反対側では、JToggleButtonsの1つがクリックされたときに、正しいJPanelを表示する必要があります。今は、これを行うために1つのスレッドのみを使用しています。ここJToggleButtonをクリックしたときに表示されるJPanelが必要です
がここに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);
}
}
あるJPanelのは
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());
}
}
}
(MenuJPanel)をJToggleButtonsを保持しているイベントがトリガされたときに誰かが、私はフレーム内にこれらのパネルを開くことができる方法を教えてもらえます。 ありがとう
/layout/card.html) – MadProgrammer
私はこれを行う方法についての参考文献を探すのは本当に苦労しました。ありがとう – LH88