SWT – MouseListenerおよびMouseAdapterの例
MouseListener
マウスイベント処理の実装は簡単です。MouseListenerインターフェイスを実装し、すべてのインターフェイスメソッドを宣言する必要があります。
addMouseListener()メソッドを使用して、MouseListenerをウィジェットにアタッチできます。
"widget control".addMouseListener(new MouseListener() { public void mouseDown(MouseEvent e) { System.out.println("Mouse Down."); } public void mouseUp(MouseEvent e) { System.out.println("Mouse Up."); } public void mouseDoubleClick(MouseEvent e) { System.out.println("Mouse Double click."); } });
完全なソースコードを次に示します。
mport org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class SWTMouseListener { public static void main (String [] args) { Display display = new Display (); Shell shell = new Shell(display); //push button Button pushButton = new Button(shell, SWT.PUSH); pushButton.setLocation(50, 50); pushButton.setText("Im a Push Button"); pushButton.pack(); pushButton.addMouseListener(new MouseListener() { public void mouseDown(MouseEvent e) { System.out.println("Mouse Down."); } public void mouseUp(MouseEvent e) { System.out.println("Mouse Up."); } public void mouseDoubleClick(MouseEvent e) { System.out.println("Mouse Double click."); } }); shell.setSize(500,500); shell.open (); while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } display.dispose (); } }
MouseAdapter
マウスイベントでダブルクリックメソッドのみが必要な場合もありますが、MouseListenerインターフェイスを実装し、すべてのインターフェイスメソッドを宣言する必要があります。 ここで、MouseAdapterが配置され、MouseAdapterを使用して、すべてのMouseListenerにデフォルトの実装を提供します。使用するメソッドを宣言するだけです。
addMouseListener()メソッドを使用して、MouseAdapterをウィジェットにアタッチすることもできます。
"widget control".addMouseListener(new MouseAdapter() { public void mouseDoubleClick(MouseEvent e) { System.out.println("Mouse Double click."); } });
完全なソースコードを次に示します。
import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class SWTMouseAdapter { public static void main (String [] args) { Display display = new Display (); Shell shell = new Shell(display); //push button Button pushButton = new Button(shell, SWT.PUSH); pushButton.setLocation(50, 50); pushButton.setText("Im a Push Button"); pushButton.pack(); pushButton.addMouseListener(new MouseAdapter() { public void mouseDoubleClick(MouseEvent e) { System.out.println("Mouse Double click."); } }); shell.setSize(500,500); shell.open (); while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } display.dispose (); } }