Java Tutorial/SWT/MenuItem Event

Материал из Java эксперт
Перейти к: навигация, поиск

Add click event listener to MenuItem

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.Clipboard; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class MenuItemListener {

 public static void main(String[] args) {
   Display display = new Display();
   final Clipboard cb = new Clipboard(display);
   Shell shell = new Shell(display);
   shell.setLayout(new FillLayout());
   final Text text = new Text(shell, SWT.BORDER | SWT.MULTI | SWT.WRAP);
   Menu menu = new Menu(shell, SWT.POP_UP);
   final MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
   
   copyItem.setText("Copy");
   copyItem.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent e) {
       System.out.println("copy");
     }
   });
   
   text.setMenu(menu);
   shell.setSize(200, 200);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   cb.dispose();
   display.dispose();
 }

}</source>





Add Selection Listener to MenuItem

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; public class MenuItemSelectionListenerAdding {

 public static void main(String[] args) {
   Display display = new Display();
   Shell shell = new Shell(display);
   Menu bar = new Menu(shell, SWT.BAR);
   shell.setMenuBar(bar);
   MenuItem fileItem = new MenuItem(bar, SWT.CASCADE);
   fileItem.setText("&File");
   Menu submenu = new Menu(shell, SWT.DROP_DOWN);
   fileItem.setMenu(submenu);
   MenuItem item = new MenuItem(submenu, SWT.PUSH);
   item.addListener(SWT.Selection, new Listener() {
     public void handleEvent(Event e) {
       System.out.println("Select All");
     }
   });
   item.setText("Select &All\tCtrl+A");
   shell.setSize(200, 200);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}</source>





MenuItem Arm Event Listener

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; public class ArmEventListenerMenuItem {

 public static void main(String[] args) {
   Display display = new Display();
   Shell shell = new Shell(display);
   
   Listener armListener = new Listener() {
     public void handleEvent(Event event) {
       MenuItem item = (MenuItem) event.widget;
       System.out.println(item.getText());
       
     }
   };
   Menu menuBar = new Menu(shell, SWT.BAR);
   shell.setMenuBar(menuBar);
   MenuItem fileItem = new MenuItem(menuBar, SWT.CASCADE);
   fileItem.setText("File");
   MenuItem editItem = new MenuItem(menuBar, SWT.CASCADE);
   editItem.setText("Edit");
   Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);
   fileItem.setMenu(fileMenu);
   String[] fileStrings = { "New", "Close", "Exit" };
   for (int i = 0; i < fileStrings.length; i++) {
     MenuItem item = new MenuItem(fileMenu, SWT.PUSH);
     item.setText(fileStrings[i]);
     item.addListener(SWT.Arm, armListener);
   }    
   
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}</source>