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

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

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

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

Q&A

解決済

1回答

1400閲覧

GUIでテキスト入力された文字列を表示させたい

wafflek

総合スコア15

Java

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

0グッド

0クリップ

投稿2019/06/28 06:09

編集2019/06/28 06:56

JavaのGUIの練習でテキスト入力から受け取った文字列を下のNew String:の後に表示されるということをやっているのですが、テキスト入力を表示させて文字を入れてMove!ボタンを押してみたのですがNew String:のあとに表示させることができませんでした。

現状のGUIでは
_____________(テキスト入力)
Move!   (ボタン)
New String:

このテキスト入力に文字を入力しMove!ボタンを押すと

_____________(テキスト入力)
Move!   (ボタン)
New String:

このままになってしまいます。

理想はこのテキスト入力にaaaという文字を入力してMove!ボタンを押すと

_____________(テキスト入力)
Move!   (ボタン)
New String:aaa

となるようにしたいです。テキスト入力で文字列を受け取ってそれを表示させようとしたのですが文字列を受け取るところがうまくいっていないのか表示させることができませんでした。

かなり初歩的な質問だと思われますが、なんとか自力で解決しようと邁進したのですが、解決の糸が見つからなかったので質問させていただきました。

java

1import javax.swing.*; 2import java.awt.*; 3import java.awt.event.*; 4 5public class Prob93 { 6 private static String labelPrefix = "New String: "; 7 private String newString; 8 private JLabel label; 9 10 class ButtonAction implements ActionListener { 11 public void actionPerformed(ActionEvent e) { 12 label.setText(labelPrefix + newString); 13 } 14 } 15 16 public Component createComponents() { 17 18 19 label = new JLabel(labelPrefix); 20 JTextField text = new JTextField(20); 21 JButton button = new JButton("Move!"); 22 ButtonAction buttonListener = new ButtonAction(); 23 button.addActionListener( buttonListener ); 24 25 26 JPanel pane = new JPanel(); 27 pane.setBorder(BorderFactory.createEmptyBorder( 30, 30, 10, 30 )); 28 pane.setLayout(new GridLayout(0, 1)); 29 pane.add(text); 30 pane.add(button); 31 pane.add(label); 32 33 return pane; 34 } 35 36 public static void main(String[] args) { 37 JFrame frame = new JFrame("SwingApplication"); 38 Prob93 app = new Prob93(); 39 Component contents = app.createComponents(); 40 frame.getContentPane().add(contents, BorderLayout.CENTER); 41 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 42 frame.pack(); 43 frame.setVisible(true); 44 } 45}

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

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

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

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

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

gentaro

2019/06/28 06:13

Javaは初心者でも日本語は上級者だと思いますので、読んでもうちょっと具体的に質問しましょう。 https://teratail.com/help/question-tips いま何がどうなっているから「うまくいっているのかわからない」んですか?
m.ts10806

2019/06/28 06:26

タイトルは要件のみ記載してください。起きている問題、実現したい機能など、質問内容に寄せてなるべく具体的な要件のみ記載してください(タグにある文言は含まなくても良いです)
wafflek

2019/06/28 06:39

皆さま様々なアドバイスありがとうございます。 つたないところが多かったので質問を書き直します
guest

回答1

0

ベストアンサー

こうして

Java

1 public Component createComponents() { 2 label = new JLabel(labelPrefix); 3 text = new JTextField(20);

こうやればいいのでは

Java

1 private JLabel label; 2 private JTextField text; 3 4 class ButtonAction implements ActionListener { 5 public void actionPerformed(ActionEvent e) { 6 label.setText(labelPrefix + text.getText()); 7 } 8 }

投稿2019/06/28 07:07

gentaro

総合スコア8949

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

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

wafflek

2019/06/28 07:30

なるほど!解決いたしました! 変数定義のところを変に複雑にしてしまったのが原因かなと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問