最終更新:2008.06.29
GUI上で物事を決定するときなどにクリックするボタンは、パッケージjava.awtに属するクラスButtonによって提供されます。以下のいずれかの方法でimportしてください。
import java.awt.*;
import java.awt.Button;
ボタンを使用するには、以下のように記述します。 btnの部分は任意の名称に変更できます。
Button btn = new Button();
初期状態では、ボタンには何も表示されていません。 ボタン上に文字を表示するには、ラベル名を指定します。具体的には、以下のように記述します。
btn.setLabel("表示したい文字");
作成したボタンは、フレームなりダイアログボックスなりに貼り付ける必要があります。たとえばfrmというフレームに貼り付けるには、以下のように記述します。
frm.add(btn);
ボタンは、貼り付けただけでは単にクリックできるだけの部品でしかありません。
実際にボタンがクリックされたことを検出するには、インターフェイスActionListener(あるいはActionListenerを実装したクラス)を追加しなければなりません。ActionListenerは、フレームなどのクラスが持つメソッドaddActionListenerで追加できます。
btn.addActionListener(ボタンbtnを含むクラス名);
メソッドaddActionListenerの引数は、ボタンを貼り付けたクラスになります。たとえばこれまでの例でいうと「frms」となります。
インターフェイスを追加したクラスはそのインターフェイスで定義されているメソッドすべてを実装しなければならないため、あらかじめ実装されている抽象クラスを利用することも可能ですが、幸いActionListenerで定義されているメソッドは一つだけなので、そのままボタンを貼り付けるクラスに追加しても構わないでしょう。
インターフェイスActionLitenerで定義されているメソッドは次の通りです。
public void actionPerformed(ActionEvent e)
メソッドactionPerformedでは引数に指定されているクラスActionEventが発生したタイミングに合わせて動作する内容を定義できます。ActionEventの発生、すなわちボタンが押されたことは、ActionEventのメソッドgetActionCommend()で取得できます。このメソッドの戻り値はボタン上に表示される文字(ラベル名)、またはメソッドsetActionCommand()によって指定された文字列です。
btn.setActionCommand("Command名");
public void actionPerformed(ActionEvent 変数名) {} if (変数名.getActionCommand.equals()) { ボタンが押されたときの処理 } else if (変数名.getActionCommand.equals()) { ボタンが押されたときの処理 } else ・・以下同
button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { }); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } });
ボタンを削除するには、以下のように記述します。
frm.remove(btn);
ボタンを削除したら、ActionListenerも削除しましょう。
btn.removeActionListener(処理を行うクラス名);