現在javaを用いて割り勘をしてくれるシステムを作ろうとしています。それにあたって、textfieldで名前の入力欄を設けて入力した値をJLabelで表示するコードを作成いたしました。しかし、フィールドが初期化されてしまっているせいか、何も表示されない結果となっています。どなたかお力添えをいただけると助かります。
細かい説明(下記コードを参照)
ソースコード1の12行目のforの部分でtextfieldを任意の数生成できるシステムを組み、入力した値を15行目のgetTextで取得できるコードを記入した。forの中の値を参照することができないため、あらかじめフィールドとしてソースコード1の4行目にあるString strを作成した。そしてソースコード2の6行目でそれを表示しようとしても白紙になってしまう。
該当のソースコード
Java
ソースコード1
import
1 2public class ChangeNumberPractice extends JPanel { 3 String str; 4 JLabel label = new JLabel("入力した人数をテキストボックスの数に変える"); 5 6 public ChangeNumberPractice(PanelPracticeNumber ppn){ 7 this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 8 this.add(label); 9 String textNumber = ppn.getText(); 10 int tn = Integer.parseInt(textNumber); 11 for(int i = 0; i < tn; i++){ 12 JTextField text = new JTextField(); 13 this.add(text); 14 str = text.getText(); 15 } 16 this.add(new ButtonInCnp(ppn)); 17 System.out.println(str); 18 } 19}
ソースコード2
import
1 2public class PanelInCnp extends JPanel{ 3 JLabel label = new JLabel("記入した名前の表示"); 4 public PanelInCnp(ChangeNumberPractice cnp){ 5 JLabel nameLabel = new JLabel(cnp.str);→1の方のフィールドの値を表示 6 this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 7 this.add(label); 8 this.add(nameLabel); 9 } 10}
試したこと
switch-caseで動的でないtextfieldも設けたが、そちらも結局は値が表示されなかった。
例case1: jtextfield text1 = new jtextfield();
String str = text1.getText();
break;
補足情報(FW/ツールのバージョンなど)
versionはjava11
その他質問があればぜひぜひお尋ねください。
回答1件
あなたの回答
tips
プレビュー