質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

211閲覧

MainJPanelにJPanel1、2を貼り付けてボタンで切り替えるようにしたい

kamiy00

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/07/14 13:23

前提・実現したいこと

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の使い方を間違っていたりするかもしれません
ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

NamePの中にあるJTextFieldが表示されません

NP1 と NP2 で共有しようとしているからかもしれません.
別々にされては如何でしょう.

もう一つ問題があってボタンを押してもNamePの中身が変わりません

java

1 JButton b2 = new JButton("所属"); 2 b1.addActionListener(new ActionListener() {

変数名間違えてます.


蛇足になりますが, 一応 java にはメソッド名や変数名に ”こうしましょう” という指針があります.

Java言語の命名指針

もちろん自由に付けられても動作はしますので, ご自身で扱われる分には全く関係無しでも構わないのですが, このように他人に見せる場合には, 読み難いコードいうことになってしまいますので, ご留意ください.

投稿2019/07/15 09:14

jimbe

総合スコア12648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kamiy00

2019/07/15 09:36

回答有り難うございます。 うまく動作するようになりました、ありがとうございます。 コードがごちゃごちゃでもうしわけないです。自分以外にコードを見てもらうのは初めてだったので・・ 「Java言語の命名指針」べんきょうになりました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問