
よろしくお願いします。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
JAVA エラー 式の開始が不正で...
-
java spring でエラーが出て困...
-
式の型は配列型で int に解決済...
-
複数のボタンを配置し、それぞ...
-
javaの画像解析(RGB)
-
イメージのリサイズが表示されない
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
JavaScriptの変数をjavaのメソ...
-
ORA-01858: 数値を指定する箇所...
-
VBAで配列の計算
-
javaで質問です。 文字列2023/2...
-
JScrollPaneで、表示がおかしく...
-
JavaScriptを使ってロト6の当...
-
streamで送信されたArrayListを...
-
JavaScriptとVBScriptに関して
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
ループ処理の際、最後だけ","を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
C#で実行時にメソッドの返り値...
-
メインが含まれていません
-
(Swing)JTextFieldを半角のみ入...
-
javaでcsvファイル読込時の改行...
-
式の型は配列型で int に解決済...
-
JAVA エラー 式の開始が不正で...
-
C言語からJavaに書き換えの質...
-
前の月を取得したいです。
-
行の途中から読み込む方法
-
素数のみの足し算
-
Java 初心者 int型の取り扱い方
-
共有メモリについて
-
DataSet(DataTable)の使い方
-
c# デリゲート関連の命名について
-
先入れ先出し法のプログラミン...
-
java spring でエラーが出て困...
-
JAVAでCの関数ポインタのような...
-
誰か~誰か~誰か~一生のお願...
-
いまいちfor文が分かりません ...
おすすめ情報