package kino.swt; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class Main { /** * Form上のコンポーネントを配置する * @param display * @return */ public Shell open(Display display) { final Shell shell = new Shell(display); // DESIGNER: Add controls before this line. shell.setSize(500, 300); shell.pack(); shell.open(); return shell; } public static void main(String[] args) { Main main = new Main(); Display display = new Display(); Shell shell = main.open(display); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); System.exit(0); } }
Program program=Program.findProgram("html"); <- この拡張子のアプリケーションを探す program.execute("http://などURL"); <- アプリケーション起動
とすると、デフォルトのブラウザが起動し、指定したURLが開きます。
final GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 3; shell.setLayout(gridLayout);
// メニュー Menu popup = new Menu(shell, SWT.POP_UP); shell.setMenu(popup); MenuItem file1 = new MenuItem(popup, SWT.CASCADE); file1.setText("ファイル1"); MenuItem file2 = new MenuItem(popup, SWT.CASCADE); file2.setText("ファイル2"); Menu fileMenu = new Menu(popup); file1.setMenu(fileMenu); MenuItem open = new MenuItem(fileMenu, SWT.CASCADE); open.setText("開く");
Menu menubar = new Menu(shell, SWT.BAR); shell.setMenuBar(menubar);
//Menu menubar = new Menu(shell, SWT.POP_UP);//ポップアップメニュー //shell.setMenu(menubar); MenuItem file = new MenuItem(menubar, SWT.CASCADE); file.setText("File"); //ファイルメニュー表示(ファイルメニューのルート?) Menu menu = new Menu(file); file.setMenu(menu); //オープンメニュー表示 MenuItem open = new MenuItem(menu, SWT.PUSH); open.setText("Open"); //セーブメニュー表示 MenuItem save = new MenuItem(menu, SWT.PUSH); save.setText("Save"); //セパレータ MenuItem separator = new MenuItem(menu, SWT.SEPARATOR); //終了メニュー表示 MenuItem quit = new MenuItem(menu, SWT.PUSH); quit.setText("Quit"); quit.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { MessageBox messageBox = new MessageBox(shell, SWT.OK); messageBox.setMessage("文字列を入力してください。"); messageBox.open(); } });
CoolBar coolbar = new CoolBar(shell,SWT.NULL); ToolBar toolbar1 = new ToolBar(coolbar,SWT.FLAT); ToolItem tItem1_1 = new ToolItem(toolbar1,SWT.PUSH); tItem1_1.setText("Item1"); ToolItem tItem1_2 = new ToolItem(toolbar1,SWT.PUSH); tItem1_2.setText("Item2"); CoolItem item1 = new CoolItem(coolbar,SWT.PUSH); item1.setControl(toolbar1); Point pt1 = toolbar1.computeSize(SWT.DEFAULT,SWT.DEFAULT); pt1 = item1.computeSize(pt1.x,pt1.y); item1.setSize(pt1);
shell.addListener(SWT.Close, new CloseCheck());
として内部クラスで
class CloseCheck implements Listener { public void handleEvent(Event event) { System.out.println("CloseCheck called"); MessageBox box = new MessageBox( shell, SWT.APPLICATION_MODAL | SWT.ICON_QUESTION | SWT.YES | SWT.NO); box.setMessage("本当に終了する?"); box.setText("Application の終了"); int answer = box.open(); if (answer == SWT.NO) { event.doit = false; } } }
終了してよいかのダイアログを出す
http://www-6.ibm.com/jp/developerworks/java/030711/j_j-nativegui2.html
cp -p *.so /usr/lib export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH java -cp .:lib/:lib/log4j-1.2.8.jar:lib/kino_javadocsearch.jar:lib/swt.jar:lib/swt-pi.jar kino.swt.JavaDocSearchForm
この記事は
現在のアクセス:21366