`
zyh1126
  • 浏览: 4603 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

swt table简单处理

阅读更多

package src;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;

public class hjk extends Shell {

private Table table;
/**
* Launch the application
* @param args
*/
public static void main(String args[]) {
try {
Display display = Display.getDefault();
hjk shell = new hjk(display, SWT.SHELL_TRIM);
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* Create the shell
* @param display
* @param style
*/
public hjk(Display display, int style) {
super(display, style);
createContents();
}

/**
* Create contents of the window
*/
protected void createContents() {
final Button button = new Button(this, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent selectionevent) {
}
});
button.setText("button");
button.setBounds(369, 278, 48, 22);
setText("SWT Application");
setSize(500, 375);

table = new Table(this, SWT.None);
table.setLinesVisible(true);
table.setHeaderVisible(true);
table.setBounds(62, 40, 396, 232);
  for (int i = 0; i < 3; i++) {
      TableColumn column = new TableColumn(table, SWT.CENTER);
      column.setText("Column " + (i + 1));
      column.pack();
    }
for(int i=0;i<10;i++)
{
final TableItem tableItem=new TableItem(table,0);
tableItem.setText(new String[]{"","dddddddddddddddddddddddddddddddd"});
tableItem.setData("dfgh"+i);
TableEditor editor = null;
        
         //添加check box
         editor = new TableEditor (table);
     final Button check = new Button(table, SWT.CHECK);
     check.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
     check.setData(i);
         //check.setSelection(true);
     check.setFocus();
     check.isFocusControl();
         //check.setSelection(false);
     check.pack();
     editor.minimumWidth = check.getSize ().x;
     editor.horizontalAlignment = SWT.CENTER;
     editor.setEditor(check, tableItem, 0);
     check.addSelectionListener(new SelectionAdapter() {

         public void widgetSelected(SelectionEvent e) {

              // getSelection()方法用于获得checkbox的选择状态

String status1 = check.getSelection() ? "selected"

                        : "not selected";
System.out.println(table.getSelectionCount());
            

              System.out.println("checkbox1: " + status1);

             //table.//
              System.out.println("check.getData()="+check.getData());
              System.out.println("check.getData()="+table.getItem((Integer)check.getData()).getData());
              System.out.println("check.getData()="+table.getItem((Integer)check.getData()).getText(1));
          }

     });

     /*gao*/
}

//
}

@Override
protected void checkSubclass() {
// Disable the check that prevents subclassing of SWT components
}

}

......................................................
import org.eclipse.swt.SWT;

import org.eclipse.swt.custom.TableEditor;

import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;

import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;


public class Xm {

private Table table;
protected Shell shell;

/**
* Launch the application
* @param args
*/
public static void main(String[] args) {
try {
Xm window = new Xm();
window.createContents();
} catch (Exception e) {
e.printStackTrace();
}
}



/**
* Create contents of the window
*/
protected void createContents() {



    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Text Table Editor");

    shell.setLayout(new FillLayout());

    final Table table = new Table(shell, SWT.SINGLE | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    for (int i = 0; i < 3; i++) {
      TableColumn column = new TableColumn(table, SWT.CENTER);
      column.setText("Column " + (i + 1));
      column.pack();
    }
   
   
    for (int i = 0; i < 30; i++) {
      TableItem item1 = new TableItem(table,0);
      item1.setText(new String[]{"Tim"+i,"Hatton"+(i+100),"Kentucky"});

              TableEditor editor = null;
             
                  //添加check box
                  editor = new TableEditor (table);
              final Button check = new Button(table, SWT.CHECK);
              check.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
             
                  //check.setSelection(true);
              check.setFocus();
              check.isFocusControl();
                  //check.setSelection(false);
              check.pack();
              editor.minimumWidth = check.getSize ().x;
              editor.horizontalAlignment = SWT.CENTER;
              editor.setEditor(check, item1, 1);
              check.addSelectionListener(new SelectionAdapter() {

                  public void widgetSelected(SelectionEvent e) {

                       // getSelection()方法用于获得checkbox的选择状态

    String status1 = check.getSelection() ? "selected"

                                 : "not selected";

                     

                       System.out.println("checkbox1: " + status1);

                      //table.//
                       System.out.println("table.getItem(4).getText(0)="+table.getItem(3).getText(1));

                   }

              });
    }
   
    table.addListener(SWT.MeasureItem, new Listener() {    //向表格增加一个SWT.MeasureItem监听器,每当需要单元内容的大小的时候就会被调用。
        public void handleEvent(Event event) {
           event.width = table.getGridLineWidth();    //设置宽度
            event.height = (int) Math.floor(event.gc.getFontMetrics().getHeight() * 1.5);    //设置高度为字体高度的1.5倍
        }});
           //   item1.addListener(SWT.SELECTED, new Listener(){

           //   public void handleEvent(Event event) {
           //   System.out.println(".......");
           //   TableItem[] itemList =table.getItems();
           //    int listHaveChouse = table.getSelectionIndex();
              /*
              你可以通过这个下标来取得选中的行的数据了.例如:取得所选行的第一个列属性
              */
            //   String firstInfo = itemList[0].getText(0);
            //   System.out.println(firstInfo);
            //   }         
            //   });

             // item.addDisposeListener(new org.eclipse.swt.events.DisposeListener(){
             //     public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e) {
                      //editor.dispose();当table刷新后,旧的控件清除掉。否则item remove后控件还会在原位
            //          tax.dispose();
            //          check.dispose();                                               
            //      }
           //   });
    System.out.println("table.getItem(4).getText(0)="+table.getItems()[5].getText(0));
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }
//



}
分享到:
评论

相关推荐

    swt table 实现换行

    下面是一个简单的示例代码,展示了如何在 SWT Table 中实现文本换行的功能: ```java public class SWTTableExample { public static void main(String[] args) { Display display = new Display(); Shell shell...

    java swt table

    以下是一个简单的示例,演示了如何使用GridLayout来布局一个包含Tree和Table的SWT窗口: ```java import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout...

    swt高级密笈源码swt

    1. **SWT组件**:SWT提供了大量的组件,如按钮(Button)、文本框(Text)、列表(List)、表格(Table)、树形视图(Tree)、进度条(ProgressBar)等。理解每个组件的用法和属性设置,可以创建丰富的用户界面。 2...

    SWT开发教程1

    以下是一个简单的SWT程序示例,创建一个窗口并添加一个按钮: ```java import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt....

    SWT表格管理类

    总之,`SWT表格管理类`通过`TableManager`这样的辅助工具,使得在Java环境中创建功能强大的表格变得简单易行。通过表头排序、隔行颜色和表格宽度自适应等功能,开发者能够创建出更加用户友好的界面,提高应用程序的...

    Swt/Jface tableViewer入门教程一(显示tableViewer)

    `tableViewer`是一个视图对象,它与Swt的`Table`控件进行交互,提供了一种简单的方式来填充和操作表格数据。它包含了一些关键方法,如`setContentProvider`、`setLabelProvider`和`setInput`,分别用于设置数据提供...

    Swt的API使用说明

    Swt API中的`Table`类用于创建表格,可以添加列、数据,并支持排序、选择和编辑。`Tree`类则用于创建树形结构,用于展示层次化的数据。两者都提供了丰富的事件处理机制,可以对用户交互进行响应。 **3. 布局管理** ...

    多个SWT例子

    - Table:SWT 提供的 `Table` 类可以用来创建表格,支持多列、排序、选择等特性。JFace 的 `TableViewer` 可以进一步增强表格功能,如数据绑定和行操作。 - Tree:`Tree` 组件用于展示层次化的数据结构,`...

    SWT --JAR 包

    - 表格(Table)和树(Tree):SWT提供了高度定制的表格和树视图,可以处理大量数据,并支持排序、分页和选择。 - 菜单(Menu)和工具栏(ToolBar):开发者可以轻松地创建上下文菜单、主菜单以及工具栏,以提供...

    swt 组件介绍

    Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION); table.setHeaderVisible(true); table.setLinesVisible(true); ``` 6. **List**:用于显示列表项。 - 创建方式: ```java List list = ...

    SWT中文教程.rar

    JFace是基于SWT的高级UI库,提供了一些抽象和简化操作的类,如视图(View)、编辑器(Editor)和表编辑器(TableEditor)。JFace使得SWT程序更易于编写和维护。 8. **实战示例** 教程中应包含丰富的代码示例,如...

    eclipse开发SWT应用

    在Eclipse中开发SWT应用,首先需要了解SWT提供的基本组件,如按钮(Button)、文本框(Text)、列表(List)、表格(Table)等,这些组件可以构建出丰富的用户交互界面。SWT的优势在于其与操作系统底层的紧密集成,...

    swt API 英文版本

    - **事件处理**:SWT提供丰富的事件模型,使得用户交互的处理更加简单。 - **兼容性**:尽管需要针对不同平台的本地库,但SWT支持多种操作系统,包括Windows、Linux、macOS等。 在学习和使用SWT时,了解基本的GUI...

    SWT教程

    - **命令(Command)**:SWT提供了一种基于事件处理的机制,可以通过命令来触发特定行为。 6. **JFace与SWT的关系** - **JFace**:是Eclipse项目的一部分,建立在SWT之上,提供更高级别的API,简化了UI开发。例如,...

    Java SWT API参考(chm)

    6. **图像处理(Image Handling)**:SWT提供了加载和显示图像的能力,包括位图(Bitmap)、精灵(Sprite)和图标(ImageDescriptor),可轻松地将图形元素整合到应用程序中。 7. **打印支持(Printing Support)**...

    JAVA swt 开发第二部分

    在教程中,你可能会遇到如何创建一个简单的窗口、添加控件、处理事件、读写文件等内容的示例。例如,创建一个包含按钮和文本框的窗口: ```java Display display = new Display(); Shell shell = new Shell...

    SWT&JFACE通信录项目

    1. **SWT组件使用**:开发者利用SWT库中的Button、Text、Table等控件,创建了输入框、按钮和列表视图,让用户可以方便地添加、编辑和查看联系人信息。 2. **JFace数据绑定**:JFace的数据绑定机制使得界面元素和...

    eclipse官方网站上的SWT例子(用306个)

    5. **事件处理**:每个SWT控件都可以监听和处理事件,如鼠标点击、键盘输入等,通过添加监听器可以实现相应的业务逻辑。 6. **图像和字体**:SWT支持加载和显示图像,以及对字体的设置和操作,提供了丰富的视觉效果...

    使用 SWT 写图形化界面的例子(eclipse)

    SWT包含了一系列的控件,如按钮(Button)、文本框(Text)、标签(Label)、表格(Table)、树形视图(Tree)等,这些基本元素构成了用户界面的主要部分。它们可以直接与操作系统交互,因此在显示和响应速度上通常...

Global site tag (gtag.js) - Google Analytics