`

swt 工具栏中添加下拉式的按钮[转]

SWT 
阅读更多

 

package rcp;

import org.eclipse.swt.SWT;

 

public class ToolItemDropDownMenu {

 

  public static void main(String[] args) {

    Display display = new Display();

    Shell shell = new Shell(display);

    ToolBar toolBar = new ToolBar(shell, SWT.BORDER | SWT.VERTICAL);

 

    ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN);

    item.setText("One");

 

    DropdownSelectionListener listenerOne = new DropdownSelectionListener(item);

    listenerOne.add("Option One for One");

    listenerOne.add("Option Two for One");

    listenerOne.add("Option Three for One");

    item.addSelectionListener(listenerOne);

 

    toolBar.pack();

 

    shell.pack();

    shell.open();

    while (!shell.isDisposed()) {

      if (!display.readAndDispatch())

        display.sleep();

    }

    display.dispose();

  }

}

 

转自:http://lizhensan.iteye.com/blog/1119362

class DropdownSelectionListener extends SelectionAdapter {

  private ToolItem dropdown;

 

  private Menu menu;

 

  public DropdownSelectionListener(ToolItem dropdown) {

    this.dropdown = dropdown;

    menu = new Menu(dropdown.getParent().getShell());

  }

 

  public void add(String item) {

    MenuItem menuItem = new MenuItem(menu, SWT.NONE);

    menuItem.setText(item);

    menuItem.addSelectionListener(new SelectionAdapter() {

      public void widgetSelected(SelectionEvent event) {

        MenuItem selected = (MenuItem) event.widget;

        dropdown.setText(selected.getText());

      }

    });

  }

 

  public void widgetSelected(SelectionEvent event) {

    if (event.detail == SWT.ARROW) {

      ToolItem item = (ToolItem) event.widget;

      Rectangle rect = item.getBounds();

      Point pt = item.getParent().toDisplay(new Point(rect.x, rect.y));

      menu.setLocation(pt.x, pt.y + rect.height);

      menu.setVisible(true);

    } else {

      System.out.println(dropdown.getText() + " Pressed");

    }

  }

}

分享到:
评论

相关推荐

    SWT自定义圆形按钮

    SWT原生按钮不够美观,本案例实现自定义圆形按钮,代码可直接下载使用。

    swt工具文档 swt工具文档

    1. **Widget**: SWT中的基本构建块是Widget,它代表GUI中的一个元素,如按钮、标签或文本框。每个Widget都有自己的事件处理机制,可以通过监听器来响应用户的交互。 2. **Display**: Display是所有SWT组件的顶级...

    java SWT简单小工具

    由于SWT的设计目标是提供高性能和丰富的用户界面组件,这个小工具可能包括了按钮、文本框、菜单等常见控件的使用。 标签中的"学习java"意味着这个项目可能不仅仅是一个工具,也是一个学习资源,适合初学者了解如何...

    java swt 隐藏和显示任务栏图标和托盘图标(2)

    本文将深入探讨如何使用SWT在Java中隐藏和显示任务栏图标以及托盘图标。 首先,我们需要理解SWT中的`Display`和`Shell`概念。`Display`是应用程序的主要窗口,而`Shell`则是用户与应用交互的窗口。在SWT中,`Shell`...

    swt 隐藏显示任务栏核心

    SWT 3.0 开始引入了 Tray,可以在系统栏放置你的程序图标了 本程序实现的功能有四: * 1. 点击窗口的最小化或关闭按钮都是隐藏窗口--任务栏里不显示,不退出程序 * 2. 窗口隐藏时,任务栏无图标,系统栏有图标;...

    SWT控件2

    在SWT中,`ToolBar`类是用来创建工具栏的,它允许开发者在应用程序的界面上添加一组可点击的按钮或其它控件,通常这些按钮代表了一些常用的快捷操作。`ToolBar`控件可以被添加到窗口或者`Composite`(组合)控件上,...

    SWT隐藏任务栏图标

    在SWT(Standard Widget Toolkit)开发中,有时我们可能需要隐藏应用程序在操作系统任务栏上的图标,比如在构建即时通讯(IM)应用时,为了提供更简洁的用户界面体验。SWT是Eclipse基金会的一个开源项目,它为Java...

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    开发者需要64位的Java环境,并将“swt-64.jar”添加到类路径中,以便在他们的应用中使用SWT。通过使用SWT,他们可以创建出既美观又响应迅速的桌面应用,这些应用能够无缝地融入用户的64位Windows环境。

    SWT插件中文教程SWT常用方法

    SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的一部分。SWT提供了与操作系统本机UI组件的直接交互,从而能够创建性能高效、外观与操作系统的原生应用...

    SWT常用组件

    SWT(Standard Widget Toolkit)是一种用于构建Java应用程序的用户界面工具包。它提供了丰富的组件集合,这些组件能够很好地适应各种操作系统环境,使得开发的应用程序具有良好的跨平台特性。本文将深入介绍SWT中...

    SWT JFace 按键、事件、监听

    SWT(Standard Widget Toolkit)是Eclipse平台下的图形界面开发工具包,而JFace则是基于SWT之上的高级用户界面工具集。SWT提供了低级别的组件,用于创建跨平台的图形用户界面;而JFace则在此基础上提供了更高级别的...

    SWT中文教程.rar

    SWT(Standard Widget Toolkit)是Java编程环境中一个用于创建图形用户界面(GUI)的开源库,它是Eclipse项目的一部分。本教程将深入讲解SWT的基本概念、组件使用以及实际开发中的应用技巧。以下是对SWT中文教程的...

    SWT配置 SWT配置 SWT配置 SWT配置 SWT配置

    在任何基于SWT的Java项目中,首要任务就是将SWT JAR文件添加到项目的Classpath中。这一步骤确保了编译器能够识别SWT类和方法。具体操作如下: - **创建Java项目**:首先,在IDE中创建一个新的Java项目。 - **指定...

    swt/Jface中文教程

    - **SWT的特点**:SWT提供了丰富的图形组件,例如按钮、文本框、列表等,并且这些组件在不同平台上具有相同的外观和行为。此外,SWT还提供了强大的事件处理机制,使得开发者可以轻松地响应用户的交互行为。 - **...

    SWT运行环境的配置

    在Eclipse菜单栏中,依次选择"Help" -> "Eclipse Marketplace",然后在搜索框中输入"SWT"。找到相关的SWT插件,如"SWT Designer",点击"Install"按钮,遵循提示完成安装。 SWT依赖于特定平台的本地库,这些库在SWT...

    Eclipse中SWT插件的安装Eclipse中SWT插件的安装

    2. **访问Eclipse Marketplace**: 在Eclipse的菜单栏中选择“帮助”(Help) -> “Eclipse Marketplace”,这将打开一个新的视图,你可以在这里搜索并安装各种插件。 3. **搜索SWT插件**: 在Eclipse Marketplace的...

    SWT源码 swt.jar

    通过添加这个jar到项目的类路径,开发者就可以在他们的程序中使用SWT组件,如按钮、文本框、树视图等。 描述中提到的"src.zip"文件包含的是SWT的源代码,这对于开发者进行调试、学习和定制SWT行为至关重要。源代码...

    SWT Table分页的工具类

    本文将深入探讨如何使用SWT Table实现分页功能,并基于描述中提到的工具类进行讨论。 在SWT Table中实现分页,我们需要关注以下几个关键点: 1. **数据模型**:首先,我们需要定义一个数据模型来存储表格中的数据...

    Eclipse中使用SWT进行界面设计

    在Eclipse中开发SWT应用,需要将SWT库(swt.jar)添加到项目的类路径中。通常,SWT库位于Eclipse安装目录下的plugins子目录,具体路径与Eclipse版本相关。例如,对于Windows系统,可能在`ECLIPSE_HOME\eclipse\...

    SWT的简单实例

    1. **BUTTON**: BUTTON是SWT中用于创建按钮的类。按钮是GUI中最基本的交互元素,用户可以通过点击按钮来触发某个操作或事件。在SWT中,你可以自定义按钮的文字、图标以及响应的事件处理器。 2. **TEXT**: TEXT组件...

Global site tag (gtag.js) - Google Analytics