複数のボタンのイベントを1箇所で受け取って処理

javaでソフトキーボードを作る場合、JButtonが最低でも26個必要になります
しかし僕のようなニワカプログラマNetBeansでイベント処理しようとすると、〜〜actionPerformedを26個作りがちです
ですがこれは完全に無駄な作業です

実際にどうすればいいかというとまずデザイン画面でまとめて処理したいボタンをドラッグで複数選択し右クリックします
するといつもイベントを追加するときの「イベント」が選択できなくなっています
しかしあせらずプロパティを選択します
開かれるプロパティは指定されたボタンを一括に編集するものでたとえばtooltipをいじると全部同じtooltipになります
そこで「イベント」タブに移動し、actionPerformedの項目を選択し、好きな関数名を書きます(なんでもいいですがここではButtonClickedとでもしておきます)
プロパティを閉じ、ソースに移動するとどこかにButtonClicked(java.awt.event.ActionEvent evt)ができているはずです

    private void ButtonClicked(java.awt.event.ActionEvent evt) {                               
        //JButton b = (JButton)evt.getSource();
        //type(b.getText());
        type(evt.getActionCommand());
    }  

1行目は自動生成されたものです
2行目で、押されたボタンを取得しますボタンが押されたイベントなので無警戒にJButtonでキャストしていいと思います
もしボタン以外(トグルボタンだとか)がある場合これでは動かないので何らかの場合分けが必要です
3行目でそのボタンのテキスト(この例ではAとかSとか)を取得しそれをtype関数でどこかに書きだしたりしています(この例では暗号化して書きだしてます)

もしボタンのテキストが出力したい文字列と違う場合は、ボタンの一つ一つに名前(nameであってtextではない)をつけてb.getName()とすればいいです
ボタンに名前をつけるためにはプロパティのnameのところで命名できます
コメントありがとうございます。たった1行になってしまいました。イベントの発生元をボタンにキャストしてそれからテキスト取って…でなくイベントがすでに情報を持ってたんですね
このActionCommandはデフォルトではボタンのテキストになっているようです
もしテキストと違う文字列を出したい場合はボタンのプロパティでActionCommandを変更できるようです


簡単だしコードが少なくなってステキですので試してみてください