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

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

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

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java ME

Java ME(Java Platform, Micro Edition)はリソースが制限されたデバイス(携帯電話、PDA、テレビなど)用につくられたJavaプラットフォームである。

Java Persistence API

Java Persistance Acchitecture API (JPA) はJavaオブジェクト・クラスとリレーショナルデータベースとの間のデータへのアクセス、管理、維持を行う為のJava用のフレームワークです。

Java

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

Q&A

解決済

2回答

146閲覧

JavaSwingでボタン実装の仕方が分かりません。

gotuiOtome

総合スコア1

Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java ME

Java ME(Java Platform, Micro Edition)はリソースが制限されたデバイス(携帯電話、PDA、テレビなど)用につくられたJavaプラットフォームである。

Java Persistence API

Java Persistance Acchitecture API (JPA) はJavaオブジェクト・クラスとリレーショナルデータベースとの間のデータへのアクセス、管理、維持を行う為のJava用のフレームワークです。

Java

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

1グッド

0クリップ

投稿2024/04/23 02:46

実現したいこと

Javaプログラムで0,1,2,3,の選択画面を作りたいです。
0を選択したらint aに0を代入。同じく1を選択したらint aに1を代入。
その後に、mainのifで判定に使ったりしたいです。
まずこのプログラムの再現が可能なのでしょうか。
有識者の方、お手数をおかけしますが答えてくださると嬉しいです。

発生している問題・分からないこと

ボタンを三つ作ることには成功したんですが、trueしか格納できないです。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

javaswingの記事が少なく変数に代入しているボタンがなかったです。

補足

特になし

TN8001👍を押しています

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

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

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

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

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

jimbe

2024/04/23 03:19 編集

java と付くものを片っ端からタグに並べても意味がありません。 java の swing の質問なら "java", "swing" の二つで足りると思います。 >0を選択したらint aに0を代入。同じく1を選択したらint aに1を代入。 >その後に、mainのifで判定に使ったりしたいです。 2 と 3 の時はどうするのでしょう。 その後の main というのは public static void main(String[] args) と定義される main メソッドのことでしょうか。 >まずこのプログラムの再現が可能なのでしょうか。 再現というのはどういうことでしょう。新しくプログラムを作っているのでは無く、過去の何かを真似て作っている? >ボタンを三つ作ることには成功したんですが、trueしか格納できないです。 1 と 2 の時に設定するという変数 a は int のようですが、int なら (boolean である) "true" は入りません。何に true が入ったのでしょう。 また、「0,1,2,3,の選択画面」ならボタンは四つ必要では? プログラムは、見た目が同じでも書き方によって大きく内容が異なります。当然起きる問題やその原因も異なります。 とりあえず出来ているコードをご提示頂くと、説明されていない部分も推測することが出来るかもしれませんので、可能(="他人に提示してはならない"等の制約は無い)でしたら、質問を編集してコードのマークダウンを利用してご提示ください。
guest

回答2

0

ベストアンサー

Javaプログラムで0,1,2,3,の選択画面を作りたいです。
0を選択したらint aに0を代入。同じく1を選択したらint aに1を代入。

こういったユーザーの返答を待つウィンドウを「ダイアログ」と言います。
Swingでは「はい」・「いいえ」のような定型のもの以外に、独自のボタンを出すことも可能です。
JOptionPane#showOptionDialog (Java Platform SE 8 )

Java

1import javax.swing.JOptionPane; 2 3public class Sample { 4 public static void main(String[] args) { 5 String[] options = { "0", "1", "2", "3" }; 6// Integer[] options = { 0, 1, 2, 3 }; // 数値でもいけるけど(int[]じゃダメ) 7 8 // "0" 等が返ってくるのではなく、インデックスが返ってくる 9 int a = JOptionPane.showOptionDialog(null, 10 "メッセージ", "ウィンドウタイトル", 11 JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, 12 null, options, null); 13 14 if (a == JOptionPane.CLOSED_OPTION) { // ×で閉じた場合(-1) 15 System.out.println("未選択"); 16 } else { 17 System.out.println("index: " + a + ", value: " + options[a]); 18 } 19 } 20}

ダイアログ画像

JOptionPaneでやりたいことがある


その後に、mainのifで判定に使ったりしたいです。

通常Swingでは、フレーム(ウィンドウ)表示後のmainに処理は書きません。
コンソール(CUI)プログラムとSwing(GUI)プログラムを、混ぜて使用するつもりということでしょうか?

別に混ぜたらダメということもないですが、どちらかに寄せたほうが良いのは確かです。

投稿2024/04/23 09:19

編集2024/04/23 09:27
TN8001

総合スコア9326

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

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

gotuiOtome

2024/04/24 00:52

私の曖昧な質問に答えてくださってありがとうございます。 回答してくださったコードを試してみたところ解決しました。 次は質問を詳細に書こうと思います。 もし機会がありましたら、よろしくお願いいたします。
TN8001

2024/04/24 02:11

> 回答してくださったコードを試してみたところ解決しました。 よかったです^^ では質問を「解決済」にしてください。 [ヘルプ|質問を解決済みにしたい](https://teratail.com/help#resolve-question) > 次は質問を詳細に書こうと思います。 最初から完璧な質問を求めているわけではありません。 「質問へのコメント」欄は質問にいちゃもんを付けているのではなく、回答したいけど情報不足なので詳しく教えてほしい等の善意の行動です。 質問のどこかにある「🖉編集」ボタンで、いつでも・何度でも編集可能です。 (下手に日本語で説明しようとするより)プログラムコードを提示するほうが、あいまいさがなく(少なくとも現状を)正しく伝えられます。 わたしもだらだら日本語を書くのは嫌いで、コードを見て(実行して)ね派です^^;
guest

0

ボタンを押すと数字が表示されます。
『mainのifで判定に使ったり』というのがこの中の main メソッドのことなら、それは出来ません。
ボタンを押した時の値で処理をするなら、直接各ボタンに処理を書いたほうが早いですし、それはちょっと…ということなら setA メソッド内で行うことになります。

java

1import java.awt.FlowLayout; 2 3import javax.swing.*; 4 5public class MainFrame extends JFrame { 6 public static void main(String[] args) { 7 SwingUtilities.invokeLater(() -> new MainFrame().setVisible(true)); 8 } 9 10 MainFrame() { 11 super("テスト"); 12 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 13 setSize(320, 200); 14 setLocationRelativeTo(null); 15 16 setLayout(new FlowLayout()); 17 for(int i=0; i<4; i++) add(createButton(i)); 18 } 19 20 private JButton createButton(int a) { 21 JButton button = new JButton("" + a); 22 button.addActionListener(v -> setA(a)); 23 return button; 24 } 25 26 private void setA(int a) { 27 System.out.println("a=" + a); 28 } 29}

実行時ウインドウ

a=0 a=3 a=1 a=2 a=3

投稿2024/04/23 07:47

jimbe

総合スコア12659

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問