前提・実現したいこと
JLabel,JTextFieldを貼り付けたJpanelを2つ用意してメインパネルに貼り付ける
ボタンを押すとその2つのパネルを切り替えれるようにしたい
発生している問題・エラーメッセージ
現在CardLayoutを使って画面切り替えをしようとしています プログラムを実行してウィンドウを開いてNamePを表示するのですが NamePの中にあるJTextFieldが表示されません ------------------------- 名前1 名前2 名前3 ------------------------- ↑こんな感じで表示されます もう一つ問題があってボタンを押してもNamePの中身が変わりません
該当のソースコード
JTextField Ntext1 = new JTextField("名前1"); JTextField Ntext2 = new JTextField("名前2"); JTextField Ntext3 = new JTextField("名前3"); JPanel NameP = new JPanel(); CardLayout CL = new CardLayout(); public Panel(JFrame F) { NameP.setLayout(CL); NameP.add(NP1(),"a"); NameP.add(NP2(),"s"); setLayout(new GridLayout(5,1)); Type(); //タイプ add(NameP); //名前 F.add(this); } //名前タイプ選択ボタン public void Type() { JPanel Bpanel = new JPanel(new GridLayout(1,2)); JButton b1 = new JButton("連名"); b1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { CL.show(NameP, "a"); } }); JButton b2 = new JButton("所属"); b1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { CL.show(NameP, "s"); } }); Bpanel.add(b1); Bpanel.add(b2); this.add(Bpanel); } //名前パネル(通常) public JPanel NP1() { JPanel P = new JPanel(new GridLayout(6,1)); P.add(new JLabel("名前1")); P.add(Ntext1); P.add(new JLabel("名前2")); P.add(Ntext2); P.add(new JLabel("名前3")); P.add(Ntext3); return P; } //名前パネル(所属) public JPanel NP2() { JPanel P = new JPanel(new GridLayout(6,1)); P.add(new JLabel("所属")); P.add(Ntext1); P.add(Ntext2); P.add(new JLabel("")); P.add(new JLabel("名前")); P.add(Ntext3); return P; }
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
プログラミング初心者なのでCardLayoutの使い方を間違っていたりするかもしれません
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/15 09:36