SWT Tips and Samples 基礎編 > ToolBarManager |
|
ToolBarManagerToolBarManagerはApplicationWindowのツールバーを管理するクラスです。JFaceフレームワークのMenuManagerと同じように、ツールバーのボタンとアクションは一対一で対応しています。通常のボタン、チェックボックス式ボタン、ラジオ式ボタン、ドロップダウンボタンをツールバーに作るには、それぞれ対応したActionクラスのコンストラクタを呼びます。ここではドロップダウン式ボタンの作り方を説明します。その他の形式のボタンの作り方は、MenuManagerを参照してください。 ドロップダウン式ボタンを作るには、下のようにコンストラクタでsuperメソッドを実行し、setMenuCreatorでサブメニューを追加します。 class DropDownAction extends Action { public DropDownAction() { super("DropDown", Action.AS_DROP_DOWN_MENU); setImageDescriptor(imgDesc); //サブメニューの生成 setMenuCreator(new IMenuCreator() { public Menu getMenu(Control parent) { Menu menu = new Menu(parent); MenuItem item1 = new MenuItem(menu, SWT.NONE); item1.setText("アイテム1"); item1.setImage(imgDesc.createImage()); MenuItem item2 = new MenuItem(menu, SWT.NONE); item2.setText("アイテム2"); return menu; } public Menu getMenu(Menu parent) { return null; } public void dispose() { } }); } ... } サンプルアプリケーションサンプルアプリケーションを実行するには、コンパイルされたクラスファイルと同じディレクトリにicon1.gifというファイルを配置してください。 ソースコード (ToolBarManagerTest.java)import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuCreator; import org.eclipse.jface.action.Separator; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; public class ToolManagerTest extends ApplicationWindow { private Label label; private ImageDescriptor imgDesc; public ToolManagerTest() { super(null); imgDesc = ImageDescriptor.createFromFile(ToolManagerTest.class, "icon1.gif"); addToolBar(SWT.FLAT); } public static void main(String[] args) { ApplicationWindow w = new ToolManagerTest(); w.setBlockOnOpen(true); w.open(); Display.getCurrent().dispose(); } protected Control createContents(Composite parent) { getShell().setText("ToolManagerTest"); getShell().setSize(250, 150); Composite container = new Composite(parent, SWT.NONE); container.setLayout(new GridLayout(1, false)); label = new Label(container, SWT.NONE); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); return container; } protected ToolBarManager createToolBarManager(int style) { ToolBarManager tbm = new ToolBarManager(style); tbm.add(new PushAction()); tbm.add(new CheckBoxAction()); tbm.add(new Separator()); tbm.add(new RadioAction()); tbm.add(new RadioAction()); tbm.add(new DropDownAction()); return tbm; } class PushAction extends Action { public PushAction() { super("PUSH", Action.AS_PUSH_BUTTON); setText("Push"); setImageDescriptor(imgDesc); } public void run() { label.setText("Push is selected."); } } class CheckBoxAction extends Action { public CheckBoxAction() { super("CHECKBOX_ACTION", Action.AS_CHECK_BOX); setText("CheckBox"); setImageDescriptor(imgDesc); } public void run() { label.setText("Checkbox is selected."); } } class RadioAction extends Action { public RadioAction() { super("RADIO", Action.AS_RADIO_BUTTON); setText("Radio"); setImageDescriptor(imgDesc); } public void run() { label.setText("Radio is selected."); } } class DropDownAction extends Action { public DropDownAction() { super("DropDown", Action.AS_DROP_DOWN_MENU); setImageDescriptor(imgDesc); //サブメニューの生成 setMenuCreator(new IMenuCreator() { public Menu getMenu(Control parent) { Menu menu = new Menu(parent); MenuItem item1 = new MenuItem(menu, SWT.NONE); item1.setText("アイテム1"); item1.setImage(imgDesc.createImage()); MenuItem item2 = new MenuItem(menu, SWT.NONE); item2.setText("アイテム2"); return menu; } public Menu getMenu(Menu parent) { return null; } public void dispose() { } }); } public void run() { label.setText("DropDown is selected."); } } } 最新更新日: 2004年10月20日 |
- PR -
【Sony】大手他社よりも安い!ビジネス向け光・100Mしかも固定IP付!今なら更に初期費用最大15,000円OFF!
オフィス用品・オフィス家具 価 格 交 渉 可!
|
||||
|
|||||
Copyright(C) 2003,2004 Jasmin Project. All Right Reserved. |
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||