1. ともかく窓を出したい。
GUIアプリでのエントリポイントはそこだ。下記を実行すると中身の何もない窓がぴろっと出ます。
import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.widgets.Display; public class Main { public static void main(String[] args) { ApplicationWindow mainWindow = new ApplicationWindow(null); mainWindow.setBlockOnOpen(true); mainWindow.open(); Display.getCurrent().dispose(); } }
2. HelloWorld!
で、ちゃんと MVC フレームワークである Viewer を使って実装したものがコレ。実行するとHelloWorldと書かれたテキストボックス一個だけの窓が出ます。
import org.eclipse.jface.viewers.ContentViewer; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; class HelloWorldViewer extends ContentViewer{ private Text text_; public HelloWorldViewer(Composite parent) { text_ = new Text(parent, 0); text_.setText("HelloWorld"); } @Override public Control getControl() { return text_; } @Override public ISelection getSelection() { return null; } @Override public void refresh() { } @Override public void setSelection(ISelection selection, boolean reveal) { } } class MainWindow extends ApplicationWindow{ public MainWindow(Shell parentShell) { super(parentShell); } protected Control createContents(Composite parent){ HelloWorldViewer viewer = new HelloWorldViewer(parent); return viewer.getControl(); } } public class Main { public static void main(String[] args) { MainWindow mainWindow = new MainWindow(null); mainWindow.setBlockOnOpen(true); mainWindow.open(); Display.getCurrent().dispose(); } }
3.資料
Eclipse Workbench以外でのEclipse GUIの使用 第1回: スタンドアロン・モードでJFaceおよびSWTを使用する
この記事が 2001/3/1 の物だってことに驚く。海外は2001年にはもうこんな世界だったのか。レベルが違いすぎる(悲)