私はメインクラスとプロクラスの2つのクラスを持っています。メインクラスには、プロクラスのパネルをさらに表示する入門パネルがあります。プロクラスの2番目のパネルには、メインクラスのパネルを表示する必要がある「ホーム」ボタンがあります。どのように私は "ホーム"ボタンの仕事をするのですか教えてください?クラスの上別のクラスのパネルからメインクラスパネルに戻るにはどうすればいいですか?
class proMain extends JPanel {
JPanel pan2 = new JPanel();
JButton b1, b2, b3;
CardLayout lay = new CardLayout();
public void pshow() {
// First Panel
pan.setBackground(Color.red);
b1 = new JButton("Next");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals("Next")) {
pan2.setVisible(true);
pan.setVisible(false);
}
}
});
pan.add(b1);
// Second Panel
b2 = new JButton("Previous");
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals("Previous")) {
pan.setVisible(true);
pan2.setVisible(false);
}
}
});
b3 = new JButton("Home");
b3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand() == "Home") {
//
}
}
});
pan2.setBackground(Color.cyan);
pan2.add(b2);
pan2.add(b3);
pan.setVisible(true);
pan2.setVisible(false);
add(pan);
add(pan2);
}
}
proMainクラスであり、主なクラスがある:
public class proDis {
public static void main(String[] args) {
JFrame fr = new JFrame("CrdLay");
JPanel pan3 = new JPanel();
JButton b = new JButton("Next");
CardLayout cl = new CardLayout();
fr.setLayout(cl);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals("Next")) {
pan3.setVisible(false);
proMain pm = new proMain();
pm.pshow();
pm.setLayout(cl);
fr.add(pm);
pm.setVisible(true);
}
}
});
pan3.setBackground(Color.gray);
pan3.add(b);
fr.setSize(100, 300);
fr.setVisible(true);
fr.add(pan3);
}
}
あなたは 'pan3.setVisible(false)' ...を設定しました。逆にしてください。これを表示し、 'pm'を隠す。これはCardLayoutではうまくいきません...長時間使用しないでください – AxelH
または 'proDis.main(args);を呼び出すとメインフレームxD – XtremeBaumer
@XtremeBaumerに戻ります。良いアイデア...これはここで新しいフレームを生成しますが、一般的なプロジェクト(ロードプロパティ、基本的な検証、...)の予想よりもはるかに多くの作業を行うことができる – AxelH