ページ更新: 2004-09-24 (金) (6700日前)
2004-09-23 SWT 3.0 の「システムトレイ」機能を試した。 目次 [編集]情報源 #Tray example snippet: place an icon with a popup menu on the system tray SWTでタスクトレイを制御したことある方がいらっしゃいましたら JAVAで「クイック起動」の制御ができるんでしょうか。 おまけ #jdic: Tray Icon API Readme MobTaskTray(Win32 TaskTray for Java) New System Tray Functionality in Mustang (2005-11-13)
試したこと #
画面 #ToolTipを出してみた。 右クリックでメニューを表示。このメニューでアイコンを選ぶ。ここではIcon1を選んである。 右クリックでメニューを表示。Icon2を選んである。 ソースコード #/* * Created on 2004/09/23 */ package discypus.trial.swt; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; 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; import org.eclipse.swt.widgets.Tray; import org.eclipse.swt.widgets.TrayItem; /** * System Tray trial. */ public class SystemTrayTrial { private MenuItem useIcon2MenuItem; private MenuItem useIcon1MenuItem; private MenuItem exitMenuItem; private MenuItem hideShellMenuItem; private MenuItem showShellMenuItem; protected Shell shell; private TrayItem trayItem; private Image image1; private Image image2; public static void main(String[] args) { SystemTrayTrial window = new SystemTrayTrial(); window.open(); } public void open() { final Display display = Display.getDefault(); image1 = new Image(display, "openFolder.gif"); image2 = new Image(display, "closedFolder.gif"); try { createContents(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } finally { image1.dispose(); ★2004-09-24 たぶん不要。 image2.dispose(); ★2004-09-24 たぶん不要。 display.dispose(); } } protected void createContents() { // Shell shell = new Shell(); shell.setSize(600, 400); shell.setText("SWT Application"); // Popup Menu final Menu menu = new Menu(shell); shell.setMenu(menu); showShellMenuItem = new MenuItem(menu, SWT.NONE); showShellMenuItem.setText("Show Shell"); showShellMenuItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { showShell(); } }); hideShellMenuItem = new MenuItem(menu, SWT.NONE); hideShellMenuItem.setText("Hide Shell"); hideShellMenuItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { hideShell(); } }); useIcon1MenuItem = new MenuItem(menu, SWT.RADIO); useIcon1MenuItem.setText("Use Icon1"); useIcon1MenuItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { trayItem.setImage(image1); } }); useIcon2MenuItem = new MenuItem(menu, SWT.RADIO); useIcon2MenuItem.setText("Use Icon2"); useIcon2MenuItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { trayItem.setImage(image2); } }); exitMenuItem = new MenuItem(menu, SWT.NONE); exitMenuItem.setText("Exit"); exitMenuItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { shell.close(); } }); // System tray final Tray tray = shell.getDisplay().getSystemTray(); trayItem = new TrayItem(tray, SWT.NONE); trayItem.setToolTipText("SWT TrayItem"); trayItem.setImage(image1); trayItem.addListener(SWT.Show, new Listener() { public void handleEvent(Event event) { System.out.println("show menu"); } }); trayItem.addListener(SWT.Hide, new Listener() { public void handleEvent(Event event) { System.out.println("hide menu"); } }); trayItem.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { System.out.println("selection menu (left button clicked)"); } }); trayItem.addListener(SWT.DefaultSelection, new Listener() { public void handleEvent(Event event) { System.out.println("default selection menu (left button double-clicked)"); showShell(); } }); trayItem.addListener(SWT.MenuDetect, new Listener() { public void handleEvent(Event event) { menu.setVisible(true); } }); // etc. useIcon1MenuItem.setSelection(true); useIcon2MenuItem.setSelection(false); showShellMenuItem.setEnabled(true); hideShellMenuItem.setEnabled(false); } private void showShell() { shell.setVisible(true); showShellMenuItem.setEnabled(false); hideShellMenuItem.setEnabled(true); } private void hideShell() { shell.setVisible(false); showShellMenuItem.setEnabled(true); hideShellMenuItem.setEnabled(false); } } |