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

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

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

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

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

解決済

1回答

2333閲覧

java テキストフィールドの値を書き換えて出力する方法について

takumi-33

総合スコア19

Java

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

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

0クリップ

投稿2021/06/02 12:35

編集2021/06/02 12:40

前提・実現したいこと

2 つのテキストフィールドを用いて、 度とラジアンの変換を双方向に行なえる (片方のテキストフィールドの値を変えると、 もう片方のテキストフィールドの値が変わる)ような GUI アプリケーションを作成したいです。

片方のテキストフィールドの値を変えると、 もう片方のテキストフィールドの値が変わるという機能の作り方が分からなくて困っています。

発生している問題・エラーメッセージ

2 つのテキストフィールドの作成は完了したのですが、片方のテキストフィールドの値を変えると、 もう片方のテキストフィールドの値が変わるという機能の作り方が分かりません。

if(テキストフィールド1に値が入力される){
テキストフィールド1に入力された値をテキストフィールド2に○○度の形に書き換えて表示する

if(テキストフィールド2に値が入力される){
テキストフィールド2に入力された値をテキストフィールド1に○○ラジアンの形に書き換えて表示する

という機能をどこかで実装することは、検討がついているのですが、どのイベントハンドラーを用いるのか分かりません。

全く検討が付かないので、何かアドバイス頂けると幸いです。

エラーメッセージはありません

該当のソースコード

java

1import javax.swing.JFrame; 2import javax.swing.JPanel; 3import javax.swing.JLabel; 4import javax.swing.JTextField; 5import java.awt.Container; 6import java.awt.BorderLayout; 7 8class Sample extends JFrame implements ActionListener{ 9 public static void main(String args[]){ 10 Sample frame = new Sample("度とラジアンの変換"); 11 frame.setVisible(true); 12 } 13 14 Sample(String title){ 15 setTitle(title); 16 setBounds(600, 300, 400, 300); 17 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 18 19 JPanel panel = new JPanel(); 20 21 JLabel label = new JLabel("ラジアン ="); 22 JTextField text = new JTextField(20); 23 panel.add(text); 24 panel.add(label); 25 26 JLabel label_2 = new JLabel("度"); 27 JTextField text_2 = new JTextField(20); 28 panel.add(text_2); 29 panel.add(label_2); 30 31 Container contentPane = getContentPane(); 32 contentPane.add(panel, BorderLayout.CENTER); 33 } 34 35 public void actionPerformed(ActionEvent e){ 36 } 37}

試したこと

イベントハンドラーについて検索すること

補足情報(FW/ツールのバージョンなど)

エディター Virtual Studio Code
コンパイラ command prompt for VS 2019

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

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

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

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

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

BeatStar

2021/06/02 12:38

『値が変わった』系か、『フォーカスが外れた』系のイベントだと思いますよ。
退会済みユーザー

退会済みユーザー

2021/06/02 12:38

VSCodeの機能に関する質問ではさそうなのでVisual studio codeのタグは消してください。 代わりにswingなど追加しては
takumi-33

2021/06/02 12:46

BeatStarさん、アドバイスありがとうございます。 検索してみます
takumi-33

2021/06/02 12:46

yakitoriiさん、アドバイスありがとうございます。 タグを変更しました!
guest

回答1

0

ベストアンサー

どのイベントハンドラーを用いるのか分かりません。

これは、何が起きた時に処理をしたいのかを決めなければ決まらないので、そこから決めましょうか。

以下のサンプルは、キーが押されて離されたタイミングで発生するイベントの付与の仕方ですので、
参考にしてください。

Java

1public class Sample extends JFrame { 2 public static void main(String args[]) { 3 Sample frame = new Sample("度とラジアンの変換"); 4 frame.setVisible(true); 5 } 6 7 Sample(String title) { 8 setTitle(title); 9 setBounds(600, 300, 400, 300); 10 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 11 12 JPanel panel = new JPanel(); 13 14 JLabel label = new JLabel("ラジアン ="); 15 JTextField text = new JTextField(20); 16 JLabel label_2 = new JLabel("度"); 17 JTextField text_2 = new JTextField(20); 18 19 // 以下を追記 20 text.addKeyListener(new KeyAdapter() { 21 @Override 22 public void keyReleased(KeyEvent e) { 23 text_2.setText(text.getText() + "とラジアンに入力されました"); 24 } 25 }); 26 panel.add(text); 27 panel.add(label); 28 29 // 以下を追記 30 text_2.addKeyListener(new KeyAdapter() { 31 @Override 32 public void keyReleased(KeyEvent e) { 33 text.setText(text_2.getText() + "と度に入力されました"); 34 } 35 }); 36 panel.add(text_2); 37 panel.add(label_2); 38 39 Container contentPane = getContentPane(); 40 contentPane.add(panel, BorderLayout.CENTER); 41 } 42}

投稿2021/06/02 14:14

編集2021/06/02 14:15
root_jp

総合スコア4666

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問