Eclipse SWT Item控件(三)

首先申明下,本文为笔者学习《Eclipse插件开发学习笔记》的笔记,并加入笔者自己的理解和归纳总结。

1. ToolBar和ToolItem

ToolBar是工具栏,ToolItem是工具栏中的选项卡。
ToolBar中,SWT.HORIZONTAL显示水平工具栏,SWT.VERTICAL显示垂直工具栏。SWT.RIGHT设置选项卡中,文字和图片左右排列。
ToolItem中,SWT.PUSH显示普通按钮,SWT.CHECK为复选状态,SWT.RADIO为单选状态,SWT.SEPARATOR表示分割。
setText()设置文字,setImage()设置图片,setToolTipText()设置显示提示信息。setControl()方法可以把其他控件放置在工具栏中。也可以添加SelectionListener监听器。

Image image = new Image(display, ToolBarDemo.class.getResourceAsStream("demo.gif"));

// 水平工具栏
ToolBar horizontalToolBar = new ToolBar(shell, SWT.HORIZONTAL | SWT.WRAP);
horizontalToolBar.setBounds(0, 0, 200, 90);

ToolItem toolItem1 = new ToolItem(horizontalToolBar, SWT.PUSH);
toolItem1.setText("item 1");
toolItem1.setImage(image);
toolItem1.setToolTipText("item 1 tips");
toolItem1.addSelectionListener(new SelectionAdapter() {
    @Override
    public void widgetSelected(SelectionEvent e) {
        System.out.println("item 1 selected");
    }
});

// 多选工具栏
ToolItem toolItem2 = new ToolItem(horizontalToolBar, SWT.CHECK);
toolItem2.setText("item 2");
toolItem2.setImage(image);
toolItem2.setToolTipText("item 2 tips");

// 单选工具栏
ToolItem toolItem3 = new ToolItem(horizontalToolBar, SWT.RADIO);
toolItem3.setText("item 3");
toolItem3.setImage(image);
toolItem3.setToolTipText("item 3 tips");

ToolItem toolItem4 = new ToolItem(horizontalToolBar, SWT.RADIO);
toolItem4.setText("item 4");
toolItem4.setImage(image);
toolItem4.setToolTipText("item 4 tips");

// 添加文本控件
ToolItem toolItem5 = new ToolItem(horizontalToolBar, SWT.SEPARATOR);
Text text = new Text(horizontalToolBar, SWT.BORDER);
text.setSize(120, 20);
toolItem5.setControl(text);
toolItem5.setWidth(120);

// 垂直工具栏
ToolBar verticalToolBar = new ToolBar(shell, SWT.VERTICAL | SWT.RIGHT);
verticalToolBar.setBounds(0, 100, 80, 80);

ToolItem toolItem6 = new ToolItem(verticalToolBar, SWT.PUSH);
toolItem6.setText("item 6");
toolItem6.setImage(image);
toolItem6.setToolTipText("item 6 tips");

new ToolItem(verticalToolBar, SWT.SEPARATOR);

ToolItem toolItem7 = new ToolItem(verticalToolBar, SWT.PUSH);
toolItem7.setText("item 7");
toolItem7.setImage(image);
toolItem7.setToolTipText("item 7 tips");

    ... ...

image.dispose();

显示如下
在这里插入图片描述

2. Menu和MenuItem

Menu是系统菜单,为窗口添加菜单栏时,使用样式SWT.BAR,并调用shell.setMenuBar()方法设置。
MenuItem是菜单的选项,样式为SWT.PUSH时为一般菜单,SWT.CHECK为多选,SWT.RADIO为单选,SWT.SEPARATOR为分割线。
添加多级菜单时,设置样式为SWT.CASCADE,并调用setMenu()方法添加Menu,并使用这个Menu来创建新的菜单项。

Image image = new Image(display, MenuDemo.class.getResourceAsStream("demo.gif"));

// 菜单栏
Menu bar = new Menu(shell, SWT.BAR);
shell.setMenuBar(bar);

// File菜单项
MenuItem fileMenuItem = new MenuItem(bar, SWT.CASCADE);
fileMenuItem.setText("file");

Menu fileMenu = new Menu(fileMenuItem);
fileMenuItem.setMenu(fileMenu);

// File菜单项 - New菜单项
MenuItem newMenuItem = new MenuItem(fileMenu, SWT.CASCADE);
newMenuItem.setText("New");
newMenuItem.setImage(image);

Menu newMenu = new Menu(newMenuItem);
newMenuItem.setMenu(newMenu);

// File菜单项 - New菜单项 - Project菜单项 
MenuItem projectMenuItem = new MenuItem(newMenu, SWT.PUSH);
projectMenuItem.setText("Project");

// File菜单项 - New菜单项 - Class菜单项
MenuItem classMenuItem = new MenuItem(newMenu, SWT.PUSH);
classMenuItem.setText("Class");		

// File菜单项 - Open菜单项
MenuItem openMenuItem = new MenuItem(fileMenu, SWT.PUSH);
openMenuItem.setText("Open");
openMenuItem.addSelectionListener(new SelectionAdapter() {
    @Override
    public void widgetSelected(SelectionEvent e) {
        System.out.println("Open Item");
    }
});

new MenuItem(fileMenu, SWT.SEPARATOR);

// File菜单项 - Close菜单项
MenuItem closeMenuItem = new MenuItem(fileMenu, SWT.PUSH);
closeMenuItem.setText("Close");
closeMenuItem.addSelectionListener(new SelectionAdapter() {
    @Override
    public void widgetSelected(SelectionEvent e) {
        shell.dispose();
    }
});

// Edit菜单项
MenuItem editMenuItem = new MenuItem(bar, SWT.CASCADE);
editMenuItem.setText("Edit");
Menu editMenu = new Menu(editMenuItem);
editMenuItem.setMenu(editMenu);

// 多选菜单项
MenuItem checkItem1MenuItem = new MenuItem(editMenu, SWT.CHECK);
checkItem1MenuItem.setText("Check Item1");
checkItem1MenuItem.setSelection(true);

MenuItem checkItem2MenuItem = new MenuItem(editMenu, SWT.CHECK);
checkItem2MenuItem.setText("Check Item2");

new MenuItem(editMenu, SWT.SEPARATOR);

// 单选菜单项
MenuItem radioItem1MenuItem = new MenuItem(editMenu, SWT.RADIO);
radioItem1MenuItem.setText("Radio Item1");
radioItem1MenuItem.setSelection(true);

MenuItem radioItem2MenuItem = new MenuItem(editMenu, SWT.RADIO);
radioItem2MenuItem.setText("Radio Item2");

MenuItem radioItem3MenuItem = new MenuItem(editMenu, SWT.RADIO);
radioItem3MenuItem.setText("Radio Item3");		

    ... ...

image.dispose();

显示如下
在这里插入图片描述在这里插入图片描述

3. CoolBar和CoolItem

CoolBar工具栏可以拖动改变位置,CoolItem作为一个可以拖动的容器,可以向CoolItem中添加控件。

Image image = new Image(display, CoolBarDemo.class.getResourceAsStream("demo.gif"));

CoolBar coolBar = new CoolBar(shell, SWT.NONE);
coolBar.setBounds(0, 0, 290, 30);

CoolItem coolItem1 = new CoolItem(coolBar, SWT.PUSH);
Button button1 = new Button(coolBar, SWT.NONE);
button1.setImage(image);
button1.setSize(25, 25);
coolItem1.setControl(button1);
coolItem1.setSize(coolItem1.computeSize(25, 25));

CoolItem coolItem2 = new CoolItem(coolBar, SWT.PUSH);
Button button2 = new Button(coolBar, SWT.NONE);
button2.setImage(image);
button2.setSize(25, 25);
coolItem2.setControl(button2);
coolItem2.setSize(coolItem2.computeSize(25, 25));

CoolItem coolItem3 = new CoolItem(coolBar, SWT.PUSH);
Combo combo = new Combo(coolBar, SWT.DROP_DOWN);
combo.add("Tom");
combo.add("Mike");
combo.setSize(60, 25);
coolItem3.setControl(combo);
coolItem3.setSize(coolItem2.computeSize(60, 25));

CoolItem coolItem4 = new CoolItem(coolBar, SWT.PUSH);
ToolBar toolBar = new ToolBar(coolBar, SWT.HORIZONTAL);
ToolItem toolItem1 = new ToolItem(toolBar, SWT.PUSH);
toolItem1.setText("item 1");
toolItem1.setToolTipText("item 1 tips");

ToolItem toolItem2 = new ToolItem(toolBar, SWT.CHECK);
toolItem2.setText("item 2");
toolItem2.setToolTipText("item 2 tips");

toolBar.setBounds(0, 0, 100, 30);
coolItem4.setControl(toolBar);
toolBar.pack();
coolItem4.setSize(coolItem2.computeSize(toolBar.getSize().x, toolBar.getSize().y));

new CoolItem(coolBar, SWT.PUSH);	

    ... ...

image.dispose();

显示如下
在这里插入图片描述

4. TabFolder和TabItem

TabFolder可以将多个页面层叠排列,并为每个页面显示提供一个选项卡,单击这些选项卡,可以切换位于最上层的页面。SWT.BOTTOM样式可以使选项卡显示在下端。
TabFolder可以添加SelectionListener监听器来监听选项卡的切换。

Image image = new Image(display, TabFolderDemo.class.getResourceAsStream("demo.gif"));

TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
tabFolder.setBounds(10, 10, 250, 190);
tabFolder.addSelectionListener(new SelectionAdapter() {
    @Override
    public void widgetSelected(SelectionEvent e) {
        System.out.println(tabFolder.getSelectionIndex());
    }
});

TabItem tabItem1 = new TabItem(tabFolder, SWT.NONE);
tabItem1.setText("tab1");
tabItem1.setImage(image);
Button button = new Button(tabFolder, SWT.PUSH);
button.setText("button");
tabItem1.setControl(button);

TabItem tabItem2 = new TabItem(tabFolder, SWT.NONE);
tabItem2.setText("tab2");
Label label = new Label(tabFolder, SWT.PUSH);
label.setText("label");
tabItem2.setControl(label);

TabItem tabItem3 = new TabItem(tabFolder, SWT.NONE);
tabItem3.setText("tab3");
Text text = new Text(tabFolder, SWT.NONE);
text.setText("text");
tabItem3.setControl(text);

    ... ...

image.dispose();

显示如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值