SWT控件学习

Group:

    Group group1 = new Group(shell, SWT.BORDER);

    Group支持的其他style有BORDER, SHADOW_ETCHED_IN, SHADOW_ETCHED_OUT, SHADOW_IN, SHADOW_OUT and SHADOW_NONE。

 Group是Composite的子类,拥有和Composite相似的方法,但也有自己的特色方法:如,setText();

Table(表格):

Table table1 =  new  Table(shell, SWT.BORDER);

支持其他的Style有:BORDER, H_SCROLL, V_SCROLL, SINGLE, MULTI,
CHECK (this style creates a check box column as the first column), FULL_SELECTION
and HIDE_SELECTION. 

如果表格style属性是FULL_SELECTION,那么表格每列的大小是可以拖动的,选中某一项后该项所处的整行将被选中。

表格属性设置:

table1.setLinesVisible( true);------显示表格线
table1.setHeaderVisible(true); -------------显示头

Table table = new Table(shell, SWT.BORDER);
table.setLinesVisible(true);
table.setHeaderVisible(true);
table.setBounds(200, 0, 300, 300);
TableColumn column1 = new TableColumn(table, SWT.LEFT);
column1.setText("name");
column1.setWidth(50);
TableColumn column2 = new TableColumn(table, SWT.LEFT);
column2.setText("age");
column2.setWidth(50);
TableColumn column3 = new TableColumn(table, SWT.LEFT);
column3.setText("sex");
column3.setWidth(50);
	
	TableItem item1 = new TableItem(table, SWT.None);
	item1.setText(new String[]{"xx","25","男"});
	TableItem item2 = new TableItem(table, SWT.None);
	item2.setText(new String[]{"xx","25","男"});

 上述代码是显示2行3列的一个表格。

TabFolder(选项卡):

   

		TabFolder tabFolder1 =  new  TabFolder(shell,SWT.BORDER); 
		tabFolder1.setBounds(10,10,270,250); 
		//Set up the button tab  
		Composite buttonComp =  new  Composite(tabFolder1,SWT.NONE); 
		Button button1 = new  Button(buttonComp,SWT.PUSH); 
		button1.setSize(100,100); 
		button1.setText("Hello"); 
		button1.setLocation(0,0); 
		Button button2 = new  Button(buttonComp,SWT.ARROW); 
		button2.setBounds(150,0,50,50); 
		   
		TabItem item1 = new  TabItem(tabFolder1,SWT.NONE); 
		item1.setText("Buttons");
		
		
		item1.setControl(buttonComp); 
		   
		//Set up the label tab 
		Composite labelComp = new  Composite(tabFolder1,SWT.NONE); 
		Label label1 =  new  Label(labelComp,SWT.NONE); 
		label1.setText( "Here are some labels for your viewing pleasure" ); 
		label1.setBounds(0,0,250,20); 
		Label label2 =  new  Label(labelComp,SWT.NONE); 
		label2.setText( "A label is a fine fingered fiend"); 
		label2.setBounds(0,40,200,20); 
		   
		TabItem item2 = new  TabItem(tabFolder1,SWT.NONE); 
		item2.setText("Labels" ); 
		item2.setControl(labelComp);  

 TabFolder 有两个属性经常需要设置 item1.setText("Buttons");  item1.setControl(buttonComp);

  第一个是设置选项卡上显示的文字,第二个是设置选项卡点击之后的显示界面。

Menu(菜单):

 创建一个菜单栏:

    Menu menu = new Menu(shell, SWT.BAR);

    shell.setMenuBar(menu);
    其中style常量必须为BAR.

 创建菜单项:

    MenuItem file = new MenuItem(menu, SWT.CASCADE);
    file.setText("File");

为菜单项增加子菜单:

    Menu filemenu = new Menu(shell, SWT.DROP_DOWN);
    file.setMenu(filemenu)

然后可以采用如上的方法为子菜单添加菜单项。

为菜单项添加事件监听:

actionItem.addListener(SWT.Selection, new Listener() { 
public void handleEvent(Event e) { 
  System.out.println("Action performed!");    
 } 
}); 

 Pop-Menu(右键菜单):

  Menu menu = new Menu(shell, SWT.POP_UP);
  MenuItem menuItem1 = new MenuItem(menu, SWT.PUSH);
  menuItem1.setText("file");
  menuItem1.addListener(SWT.Selection, new Listener() {
   @Override
   public void handleEvent(Event event) {
    System.out.println("click");
    
   }
  });
  shell.setMenu(menu);

 注意:菜单的style是POP_UP。

MessageBox(消息框):

   创建一个消息框:

  MessageBox messageBox = new  MessageBox(shell, SWT.ICON_QUESTION |  
       SWT.YES | SWT.NO | SWT.CANCEL); 
    messageBox.setMessage("Do you like apples?"); 

消息框的类型还有:ICON_ERROR, ICON_INFORMATION,
ICON_QUESTION, ICON_WARNING and ICON_WORKING.  

返回类型有: OK, OK | CANCEL , YES | NO, YES | NO | CANCEL, RETRY |
CANCEL and ABORT | RETRY | IGNORE.

调用int code = messageBox.open();就可以显示box。

code就是返回值:

 switch(response){ 
  case SWT.YES: 
   System.out.println("Yes, the user likes apples."); 
   break ; 
  case SWT.NO: 
   System.out.println("No, the user does not like apples."); 
   break ; 
  case SWT.CANCEL: 
   System.out.println("The user cancelled."); 
   break ; 
 } 

猜你喜欢

转载自littie1987.iteye.com/blog/1480458
swt
今日推荐