よろしくお願いします。
javaを使った文字入力プログラムを作っているのですが、どうしても分からず質問させて頂きたいと思います。
「あ」から「ほ」までの合計30個のひらがなの文字が書かれたボタンを、5つ×6行で設置し、クリックするとそのボタンの文字がテキストボックスに入力される・・・という設計にしたいです。
もちろん1つずつソースを書けばできるのですがそれではコードが冗長になってしまうので、できるだけ簡略化してループ処理などで実現できればと考えています。
設置するボタンはひらがなボタン30個に加え、テキストボックスをリセットするボタン、クリックするとダイアログメッセージを表示させるボタンの計32個です。
時分でもいろいろ調べてみたのですが分からずじまいです。
どうかよろしくお願いいたします!
No.1ベストアンサー
- 回答日時:
ボタンを30個作って、ボタンを押すと、そのボタンの
名前をコンソールに表示するサンプルソースです。
public class button30 extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
JButton [] bt;
public button30() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GroupLayout layout = new GroupLayout(this.getContentPane());
this.getContentPane().setLayout(layout);
this.setSize(new Dimension(500, 500));
bt = new JButton[30];
for(int i=0;i<30;++i){
bt[i]=new JButton("button"+i);
bt[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btnfunction(e);
// TODO 自動生成されたメソッド・スタブ
}
});
}
GroupLayout.SequentialGroup vgs = layout.createSequentialGroup();
for(int y=0;y<5;++y){
GroupLayout.ParallelGroup gpg = layout.createParallelGroup(Alignment.BASELINE);
for(int x=0;x<6;++x){
gpg.addComponent(bt[x*5+y]);
}
vgs.addGroup(gpg);
}
GroupLayout.SequentialGroup hg =layout.createSequentialGroup();
for(int y=0;y<6;++y){
GroupLayout.ParallelGroup phg = layout.createParallelGroup();
for(int x=0;x<5;++x){
phg.addComponent(bt[x+y*5]);
}
hg.addGroup(phg);
}
layout.setVerticalGroup(vgs);
layout.setHorizontalGroup(hg);
this.setVisible(true);
// TODO 自動生成されたコンストラクター・スタブ
}
protected void btnfunction(ActionEvent e) {
JButton b = (JButton) e.getSource();
System.out.println(b.getText());
// TODO 自動生成されたメソッド・スタブ
}
public static void main(String[] args) {
new button30();
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS 検索窓とcssハックについて 3 2022/04/22 12:21
- Excel(エクセル) マクロを教えてください 1 2022/11/28 14:52
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SwingでJtableのヘッダ行が表示...
-
java spring でエラーが出て困...
-
「配列定数は、イニシャライザ...
-
Javaのファイル名チェックについて
-
DataSet(DataTable)の使い方
-
Java3Dで円錐台を描く方法を教...
-
共有メモリについて
-
C#で指定した月の最後の日を取...
-
JAVA エラー 式の開始が不正で...
-
VC++2008 フォーム間の変数の受...
-
クラスの設計の問題
-
各店舗全て、リンゴは1個150円...
-
iアプリでバイナリデータを16進...
-
javaのエラーの意味がわかりま...
-
C言語からJavaに書き換えの質...
-
javaで電卓を作りたいのですが...
-
javaでべき乗余
-
先入れ先出し法のプログラミン...
-
c# デリゲート関連の命名について
-
javaの画像解析(RGB)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
Javaで電卓を作りたい
-
式の型は配列型で int に解決済...
-
javaでカレンダー作成
-
JAVAでCの関数ポインタのような...
-
JAVA エラー 式の開始が不正で...
-
java spring でエラーが出て困...
-
6桁の数字を重複なしでランダム...
-
c# デリゲート関連の命名について
-
C++からC#のdllを参照する際、...
-
メインが含まれていません
-
(Swing)JTextFieldを半角のみ入...
-
DataSet(DataTable)の使い方
-
JUnit4のアノテーションについて
-
三目並べ(Tick-Tack-Toe)をJav...
-
初心者ですが、今javaで簡単な...
-
javaでcsvファイル読込時の改行...
-
classを使って座標軸を求めるコ...
-
C#で実行時にメソッドの返り値...
-
Java 初心者 int型の取り扱い方
おすすめ情報