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

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

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

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

Q&A

解決済

2回答

4668閲覧

ボタンが表示されない

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2019/05/31 07:32

編集2019/05/31 09:52

#困っていること
最初に乱数を生成しラベルに表示し、更にボタンを押すたびに新しい乱数を作って、ラベルに表示するプログラムを作っているのですが、JButtonを定義しオブジェクトを生成しているのにボタンが表示されなくて困っています。どうやったら表示できますか?
#該当のソースコード

java

1import java.awt.event.ActionEvent; 2import java.awt.event.ActionListener; 3import java.util.Random; 4 5import javax.swing.JButton; 6import javax.swing.JFrame; 7import javax.swing.JLabel; 8 9public class rei52 { 10 JLabel lb; 11 Random rndm; 12 public static void main(String[] args) { 13 new rei52(); 14 } 15 public rei52(){ 16 JFrame f; 17 f=new JFrame("乱数"); 18 f.setSize(400,200); 19 JButton b; 20 b=new JButton(); //ボタンを生成 21 b.setText("押してください"); //ボタンに文字を表示 22 f.getContentPane().add(b); //フレームにボタンを追加 23 int num; 24 lb=new JLabel(); 25 f.getContentPane().add(lb); 26 rndm=new Random(); 27 num=rndm.nextInt(3); 28 lb.setText("今回の乱数は"+num+"です。"); 29 b.addActionListener(new rei52click()); 30 f.setVisible(true); 31 } 32 class rei52click implements ActionListener{ 33 public void actionPerformed(ActionEvent e){ 34 int num; 35 rndm=new Random(); 36 num=rndm.nextInt(3); 37 lb.setText("今回の乱数は"+num+"です。"); 38 } 39 } 40} 41

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

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

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

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

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

guest

回答2

0

見た感じ、JButton()で作られたbがフレームに乗せられていません。

投稿2019/05/31 07:51

m.ts10806

総合スコア80850

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

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

退会済みユーザー

退会済みユーザー

2019/05/31 07:56

フレームを追加(public rei52クラスにf.getContentPane().add(b);を追加)しましたが、ボタンは表示されないままです。
m.ts10806

2019/05/31 08:03

どこに書いたのでしょうか。 質問のコードを更新してください。
退会済みユーザー

退会済みユーザー

2019/05/31 09:43

コードを更新しました。
退会済みユーザー

退会済みユーザー

2019/05/31 22:01

今回の問題の原因はf.getContentPane().add(b);をf.getContentPane().add(lb);より先に書いてしまったことで生じたものでした。この順番を逆にすると実行できました。ありがとうございます。
guest

0

ベストアンサー

ボタンをフレームに追加していないのではないでしょうか?

投稿2019/05/31 07:46

編集2019/05/31 07:46
dice142

総合スコア5158

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

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

退会済みユーザー

退会済みユーザー

2019/05/31 07:57

フレームを追加(public rei52クラスにf.getContentPane().add(b);を追加)しましたが、ボタンは表示されないままです。
dice142

2019/05/31 08:15

正しく追加できているなら表示されているはずです。 レイアウトが設定されていないので表示されていないように見えるとかではないですか? ボタンに適当な文字を設定してみれば表示されているのかどうか分かると思います。
退会済みユーザー

退会済みユーザー

2019/05/31 09:55 編集

「b.setText("押してください"); 」を追加しましたがボタンは表示されないままです。(質問のコードにも編集で追加しました)
dice142

2019/05/31 09:59

もしかしてですが、ボタンもラベルも幅高さいっぱいになっていて、ラベルが上に来ているとかはないですか? ボタンをフレームに追加するコードを、ラベルをフレームに追加するコードの後にすればどうなりますか?
dice142

2019/05/31 10:01

f.getContentPane().add(lb); // ラベルを先に追加 f.getContentPane().add(b); // ボタンを後に追加 これでボタンが表示されるのであれば単にレイアウトの問題になります。 BorderLayoutでもGridLayoutでもお好きなものを使って整えればうまく表示できると思います。
退会済みユーザー

退会済みユーザー

2019/05/31 11:04

また時間のあるときに試してみようと思います。
退会済みユーザー

退会済みユーザー

2019/05/31 21:58

ありがとうございます。解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問