javaでセンセーショナルなボタン配置とイベント処理の方法を解説
- javaを使った文字入力プログラムを作る際に、複数のボタンを配置し、それぞれにイベント処理をつける方法について質問します。
- 設置するボタンは、30個のひらがな文字と、テキストボックスをリセットするボタン、ダイアログメッセージを表示するボタンの計32個です。
- ループ処理などを使ってコードを簡略化しながら、30個のひらがなボタンを5つ×6行に配置し、クリックしたボタンの文字をテキストボックスに入力する方法を教えてください。
- ベストアンサー
複数のボタンを配置し、それぞれにイベント処理をつける
よろしくお願いします。 javaを使った文字入力プログラムを作っているのですが、どうしても分からず質問させて頂きたいと思います。 「あ」から「ほ」までの合計30個のひらがなの文字が書かれたボタンを、5つ×6行で設置し、クリックするとそのボタンの文字がテキストボックスに入力される・・・という設計にしたいです。 もちろん1つずつソースを書けばできるのですがそれではコードが冗長になってしまうので、できるだけ簡略化してループ処理などで実現できればと考えています。 設置するボタンはひらがなボタン30個に加え、テキストボックスをリセットするボタン、クリックするとダイアログメッセージを表示させるボタンの計32個です。 時分でもいろいろ調べてみたのですが分からずじまいです。 どうかよろしくお願いいたします!
- mobsquad08
- お礼率7% (7/99)
- Java
- 回答数1
- ありがとう数2
- みんなの回答 (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
- VBAのループ処理
エクセルVBAにてテキストボックス、ラベルが複数ある フォームで入力ボタンを(コマンドボタン)クリックした時に 指定した複数のテキストボックス、ラベルをループ処理で空白に したいのですが どのようにすればいいでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- JavaScript Eventのタイミング
Eventの挙動を学ぶために、簡単なスクリプトを作成しました。 テキストボックスに文字列を入れて、Submitボタンを押すと、 テキストボックスの下に(innerHTMLで)入力文字が表示され、 ボタン自体も入力文字になるというものです。 しかし、テキストに文字を入力し、Submitを押してもボタン・innerHTMLともに文字は変化しません。このままリロードをすると変化します。 挙動からして、マウスクリック自体は反応していないが、リロードによりイベントハンドラが動作しているように見受けられます。 イベントハンドラはonclickに代入しているためなぜこのようになるのか わかりません。 できるだけ、JavascriptとHTMLを分離したく外だしのファイルで 実現したいと思っています。 考え方、(比較的平易な)参考資料などありましたら教えていただけないでしょうか? HTMLで<body onload="init()">として、JavaScriptでは以下のように記述しています。 function init(){ document.getElementById("button").click = change(); } function change(){ keyword = document.getElementById("keyword").value; document.getElementById("input").innerHTML = keyword; document.getElementById("button").value = keyword; }
- ベストアンサー
- JavaScript
- テキストボックスフォームフィールドについて
稟議書のテンプレートを作るのに、テキストボックスフォームフィールドのabボタンを使って入力フォーマットを作ってくれと言われて、ワードの本などでテキストボックスフォームフィールドを調べていますが、本にも、なかなか載っていなくて・・・フォームをダブルクリックすると、ダイアログボックスが出て、既定の文字列などでてきますが、入力してもらう時は、それぞれ、ダブルクリック後ダイアログボックスの既定の文字列に入力してもらうのでしょうか?いまいち使い方がよくわかりません。この機能を使うと、マルマル年マルマル月マルマル日などの年 月 日 がずれずに、入力できるそうなのですが、どのようにabボタンを使い フォームを使って、テンプレートを作り、第三者が入力していけばいいのでしょうか?教えてください。
- 締切済み
- オフィス系ソフト
- [×]ボタン.Enabled = False は可能?
済みません,質問が二つあります。 1.メインフォームから,BorderStyle = 1 のダイアログフォームを Modeless で開くのですが,このフォームを右上の[×]ボタンで閉じさせたくありません。[×]ボタンをクリックしても凹まないようにし(Disabled にし),さらに表示も淡色にする方法があれば,教えていただきたく存じます。 2.テキストボックスに入力された文字列が,ファイル名として有効かどうかを簡単に判定する方法はありますか? つまり,ファイル名に「\/:,…」などが使われていたら NG,しかしパス名で使われている分には OK といった判定が簡単にできるのでしょうか? どうかよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- ボタンかリンクをクリックすると入力フォームに文字入力される仕掛け
ホームページ上でテキストボックスが1つあるのでそこに色名(赤色や青色)などの文字を、ボタンかリンクをクリックするだけで入力されるような仕掛けを作りたいです。 例えば「暖かい色」と書かれた文字かボタンをクリックすれば、テキストボックスに「赤色」、また「お空の色」なら「青」などが入力されるなどです。 多分javaベースが良さそうですが、探しても見つからなかったです。 宜しくお願いします。
- ベストアンサー
- JavaScript
- Java swingによるイベント処理
こんにちは。 イベント処理について質問なのですが・・・。 テキストフィールドから「あ行」など文字を入力 ↓ ボタンをクリック ↓ ラベルに「あいうえお」など文字を表示 上のような処理を行わせたいのですが、どのように処理を分岐させればいいでしょうか?
- 締切済み
- Java
- エクセル フォームでのEnterでボタンを押さない
エクセル初心者です。 フォームをつくり、テキストボックスがいくつかありますが文字を入力後 Enterを押すとフォーム内のボタン(OKボタン・・・シートに書き込み)を押したことになってしまいます。 文字入力後、癖でEnterを押してしまうのでボタンは、クリックのみで動作するようにしたいのですが・・・・。 数式お分かりの方いらっしゃいますでしょうか?
- ベストアンサー
- Excel(エクセル)
- Access 文字入力について。
環境はAccess2000です。 2つのテキストボックスを作成し、 一方のテキストボックスに文字(漢字やひらがな)を 入力すると、もう一方のテキストボックスに 入力した文字のカナ(半角カタカナ)を 表示させたいのですが、 Accessの機能等でそういったことは実現できるので しょうか?
- ベストアンサー
- その他(プログラミング・開発)
- Access:キャンセルボタンでログイン用フォームを閉じられない
Access2000、Windows2000を使っています。 とあるログイン用のフォームに、ID入力用テキストボックス、パスワード 入力用テキストボックス、ログインボタン、キャンセルボタンを実装して います。IDとパスワードの入力においてチェックしている事は、 A:空白(未入力)だとダメ←ログインボタンのクリック時にチェック B:入力文字数が8文字以上15文字以下だとOK←各テキストボックスの フォーカス喪失時にチェック C:IDとパスワードが、とあるテーブルに登録してあればOK←ログインボタンの クリック時にチェック 以上のようなチェックですと、Bの入力文字数が8文字以上15文字以下かどうか のチェックでOKでなかった場合、入力文字数が正しく入力されるまで、 キャンセルボタンを押せません。Tabキーは効かない状態になり、マウス動作でキャンセルボタンにポインタを移動できますが、使えない状態です。 AとCのチェックでひっかかった場合は、キャンセルボタンは使えます。 入力文字数が正しくない場合、各テキストボックスにフォーカスをあてた 状態を保ちつつ、キャンセルボタンのみ使用できる・・・という処理は、 可能でしょうか? どなたか、よろしければ、ご指導おねがいいたします。
- 締切済み
- その他(データベース)