`

常用窗口小部件使用实例

 
阅读更多
package com.test.cxm.plugin01.perspective;


import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;

public class HelloWorldSWT {
	
	public static void main(String args[]){
	    Display display=Display.getDefault();
	    Shell shell=new Shell();
		shell.setSize(327,253);
		shell.setText("mmm");
		shell.setLayout(new FillLayout());
		
		//创建文本框
		final Text text=new Text(shell,SWT.MULTI);
		//创建列表
		final List list=new List(shell,SWT.SINGLE);
		list.setItems(new String[]{"1","2","3"});
		//创建只读下拉框
		final Combo combo1=new Combo(shell,SWT.READ_ONLY);
		combo1.setItems(new String[]{"String1","string2","string3"});
		combo1.setText("string2");
		//创建可编辑的下拉框
		final Combo combo2=new Combo(shell,SWT.DROP_DOWN);
		combo2.setItems(new String[]{"String1","string2","string3"});
		
		//创建表格
		final Table table=new Table(shell,SWT.SINGLE|SWT.BORDER|SWT.SELECTED);
		table.setHeaderVisible(true);
		table.setLinesVisible(true);//默认没有表格线,true的话可以看到
		TableColumn c1=new TableColumn(table, SWT.NULL);
		c1.setText("name");
		c1.pack();
		TableColumn c2=new TableColumn(table, SWT.NULL);
		c2.setText("Age");
		c2.pack();
		TableItem item1=new TableItem(table, SWT.NULL);
		item1.setText(new String[]{"cccc","25"});
		TableItem item2=new TableItem(table, SWT.NULL);
		item2.setText(new String[]{"rrrr","26"});
		//创建树
		//SWT.SINGLE 创建一颗单选树
		//SWT.MULTI 创建一个多选树
		//SWT.CHECK 创建一个单选框树
		final Tree tree=new Tree(shell,SWT.CHECK);
		for(int i=1;i<4;i++){
			TreeItem grandP=new TreeItem(tree, 0);
			grandP.setText("cxm"+i);
			for(int j=1;i<4;i++){
				TreeItem parent=new TreeItem(grandP, 0);
				parent.setText("son"+j);
				for(int k=1;k<4;k++){
					TreeItem child=new TreeItem(parent, 0);
					child.setText("child"+j);
				}
			}
		}
		
	    //复合部件
		//它可以作为其他小部件的容器
		//SWT.BORDER 创建一个具有边框的复合部件
		//SWT.NO_RADIO_GROUP 组件子单选按钮的行为
		//SWT.H_SCROLL 创建一个具有水平滚动条的复合组件
		//SWT.V_SCROLL 创建一个具有垂直滚动条的复合组件
		Composite com=new Composite(shell, SWT.BORDER);
		final Button bn=new Button(com, SWT.PUSH);
		bn.setBounds(25, 25, 50, 80);
		bn.setText("sss");
		
		//组group,是一种特殊的复合组件,它用蚀刻的边框和可选的标签包围了子部件
		//每个组件都包含在组的边框内,并相对应组自我调整大小
		Group group=new Group(shell,SWT.NULL);
		group.setText("group");
		final Button bns=new Button(group, SWT.PUSH);
		bns.setBounds(25, 25, 800, 50);
		bns.setText("hahah");
		
		
		//选项卡文件夹,用于在一个窗口内把信息组织为多个页面
		//点击tab标签,可以使该页面置于前端,tab可以包含图片和文本
		
		final TabFolder tabf=new TabFolder(shell, SWT.BORDER);
		for(int i=1;i<4;i++){
			TabItem ti=new TabItem(tabf, SWT.NULL);
			ti.setText("tab"+i);
			Composite cm=new Composite(tabf, SWT.NULL);//每个便签页面都有个复合组件
			ti.setControl(cm);
			Button bnss=new Button(cm, SWT.PUSH);
			bnss.setBounds(25, 25,80, 50);
			bnss.setText("sss"+i);
		}
		
		//菜单
		//SWT.CASCADE 创建一个带有子菜单的级联菜单
		//SWT.PUST 创建一个标准的菜单
		//SWT.SEPARATOR 创建一个分割线
		Menu menu =new Menu(shell,SWT.BAR);
		shell.setMenuBar(menu);
		MenuItem mi=new MenuItem(menu,SWT.CASCADE);
		mi.setText("sss");
		Menu subM=new Menu(shell,SWT.DROP_DOWN);
                //以最后设置的menu为准
		mi.setMenu(subM);
		MenuItem mi2=new MenuItem(subM, SWT.NULL);
		mi2.setText("eee");
		mi2.setAccelerator(SWT.CTRL+'S');
		MenuItem sep=new MenuItem(subM, SWT.SEPARATOR);
		MenuItem ex=new MenuItem(subM, SWT.NULL);
		ex.setText("exit");
		
		shell.open();
		while(!shell.isDisposed()){
			if(!display.readAndDispatch()){
				display.sleep();
			}
		}
		display.dispose();
		
	}

}
 
分享到:
评论

相关推荐

    Android中实现Launcher功能之二 ----- 添加窗口小部件以及AppWidget的创建详解.pdf

    ### 创建窗口小部件与AppWidget详解 在Android系统中,窗口小部件(AppWidget)是一种能够让用户在Home屏幕上获取应用信息和快捷操作的小部件,它也是实现Launcher功能的一部分。创建AppWidget主要涉及以下几个关键...

    android使用基本的窗口部件汇编.pdf

    Android提供了丰富的窗口部件库,其中包含了诸如TextView、Button等常用的元素。本篇文章将详细探讨如何在Android中使用这些基本的窗口部件,尤其是TextView和Button。 首先,我们来看TextView,它是最基础的文本...

    python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例

    其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式,以达到美化图形界面的目的。 本篇文章中,我们就通过一个实际的例子,使用QSS和PyQt5的配置属性,实现图形用户界面的...

    QT\linux窗口程序设计-实例分析

    5. **Dock Widgets**:QDockWidget允许你在窗口内创建可停靠的区域,可以用来承载其他控件或小部件。用户可以自由地将这些Dock Widgets拖放到窗口的不同位置,或者选择隐藏它们。 6. **中央部件**:QMainWindow有一...

    QT4.6 ToolBar浮动停靠,窗口全屏显示

    开发者使用`setWidget()`方法将`QToolBar`实例放入`QDockWidget`中,这样工具栏就可以像其他窗口部件一样进行浮动和停靠操作。 实现`QToolBar`在`QDockWidget`中的浮动和停靠,你需要以下步骤: 1. 创建`QToolBar`...

    WebGIS从基础到开发实践代码(基于ArcGIS API for JavaScript)

    3.1使用布局小部件设计页面框架 3.1.1小部件与布局小部件简介 3.1.2使用面板组织页面元素 3.1.3使用容器小部件设计页面布局 3.2可移动的小部件微架构 3.2.1自定义小部件的基础知识 3.2.2内容小部件的基类实现 3.2.3...

    kiss3d_conrod-conrod_core(易于使用的100%Rust,可扩展的2D GUI库)的叉子,与WASM和Kiss3D兼容-Rust开发

    Conrod一个完全使用Rust编写的易于使用的2D GUI库。...Builder模式入门安装Rust和Cargo运行Conrod示例让我们创建一个GUI设置基本窗口(使用piston_window)Conrod Setup实例化窗口小部件窗口小部件的位置和位置

    Web GIS从基础到开发实践 基于ArcGIS API for JavaScript

    第3章页面布局设计 3.1使用布局小部件设计页面框架 3.1.1小部件与布局小部件简介 3.1.2使用面板组织页面元素 3.1.3使用容器小部件设计页面布局 3.2可移动的小部件微架构 3.2.1自定义小部件的基础知识 3.2.2内容小...

    QTabWidget标签拖拽出窗口,又可还原

    这涉及到对`QTabWidget`和其子部件`QTabBar`的自定义以及窗口管理的一些基本概念。 首先,我们需要了解`QTabWidget`的基本结构。`QTabWidget`由两部分组成:`QTabBar`和`QStackedWidget`。`QTabBar`显示标签并处理...

    (word完整版)ExcelVBA编程实例(150例).doc

    这本书主要讲解了 Excel VBA 编程的基础知识和应用实例,共计 150 例,涵盖了 Excel VBA 中的常用对象及其属性和方法,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件...

    (完整版)ExcelVBA编程实例(150例).doc

    Excel VBA 编程实例涵盖了 Excel VBA 中的常用对象,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件、菜单和工具栏、帮助助手、格式化操作、文件操作等。 实例讲解 ...

    Qt小实例-记事本notepad

    对于初学者来说,通过这个小实例,可以更好地理解和掌握Qt的使用,为后续更复杂的项目打下基础。 在学习和实践中,不断深入研究Qt的文档,熟悉其API和设计模式,将使你能够创建功能丰富的跨平台应用程序。Qt小实例...

    垂直布局(QVBoxLayout)

    在这个例子中,我们创建了一个`QWidget`实例,然后为这个窗口部件设置了一个垂直布局。 + **向垂直布局中添加窗口部件:** ```cpp QPushButton *button1 = new QPushButton("Button 1"); QPushButton *button2 = ...

    水平布局(QHBoxLayout)

    在这个例子中,我们创建了一个`QWidget`实例,然后为这个窗口部件设置了一个水平布局。 + **向水平布局中添加窗口部件:** ```cpp QPushButton *button1 = new QPushButton("Button 1"); QPushButton *button2 = ...

    解决Qt窗口设置背景

    通过具体实例和详细解析,帮助读者掌握Qt窗口背景设置的核心技巧。 ### 一、Qt窗口背景设置概述 在Qt中,可以通过多种方式来设置窗口的背景。其中最常用的方法是利用`setStyleSheet`函数配合CSS样式表。这种方式...

    网格布局(QGridLayout)

    在这个例子中,我们创建了一个`QWidget`实例,然后为这个窗口部件设置了一个网格布局。 + **向网格布局中添加窗口部件:** ```cpp QPushButton *button1 = new QPushButton("Button 1"); QPushButton *button2 = ...

    <visual c++高级界面特效制作百例>例子代码

    最后,系统Shell编程允许开发者更深入地集成到Windows环境中,比如创建自定义的文件关联、上下文菜单项,甚至实现桌面小部件。这需要理解和使用Windows API,如ShellExecute函数,以实现与操作系统更紧密的整合。 ...

    Qt -- 主窗口

    - **布局管理(Layout Management)**: 支持将子窗口部件以网格或流式布局进行组织。 **2. 创建主窗口** 创建一个`QMainWindow`实例,然后设置其属性和组件: ```cpp #include #include #include #include ...

Global site tag (gtag.js) - Google Analytics