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 中实现文本换行的功能: ```java public class SWTTableExample { public static void main(String[] args) { Display display = new Display(); Shell shell...
以下是一个简单的示例,演示了如何使用GridLayout来布局一个包含Tree和Table的SWT窗口: ```java import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout...
1. **SWT组件**:SWT提供了大量的组件,如按钮(Button)、文本框(Text)、列表(List)、表格(Table)、树形视图(Tree)、进度条(ProgressBar)等。理解每个组件的用法和属性设置,可以创建丰富的用户界面。 2...
以下是一个简单的SWT程序示例,创建一个窗口并添加一个按钮: ```java import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt....
总之,`SWT表格管理类`通过`TableManager`这样的辅助工具,使得在Java环境中创建功能强大的表格变得简单易行。通过表头排序、隔行颜色和表格宽度自适应等功能,开发者能够创建出更加用户友好的界面,提高应用程序的...
`tableViewer`是一个视图对象,它与Swt的`Table`控件进行交互,提供了一种简单的方式来填充和操作表格数据。它包含了一些关键方法,如`setContentProvider`、`setLabelProvider`和`setInput`,分别用于设置数据提供...
Swt API中的`Table`类用于创建表格,可以添加列、数据,并支持排序、选择和编辑。`Tree`类则用于创建树形结构,用于展示层次化的数据。两者都提供了丰富的事件处理机制,可以对用户交互进行响应。 **3. 布局管理** ...
- Table:SWT 提供的 `Table` 类可以用来创建表格,支持多列、排序、选择等特性。JFace 的 `TableViewer` 可以进一步增强表格功能,如数据绑定和行操作。 - Tree:`Tree` 组件用于展示层次化的数据结构,`...
- 表格(Table)和树(Tree):SWT提供了高度定制的表格和树视图,可以处理大量数据,并支持排序、分页和选择。 - 菜单(Menu)和工具栏(ToolBar):开发者可以轻松地创建上下文菜单、主菜单以及工具栏,以提供...
Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION); table.setHeaderVisible(true); table.setLinesVisible(true); ``` 6. **List**:用于显示列表项。 - 创建方式: ```java List list = ...
JFace是基于SWT的高级UI库,提供了一些抽象和简化操作的类,如视图(View)、编辑器(Editor)和表编辑器(TableEditor)。JFace使得SWT程序更易于编写和维护。 8. **实战示例** 教程中应包含丰富的代码示例,如...
在Eclipse中开发SWT应用,首先需要了解SWT提供的基本组件,如按钮(Button)、文本框(Text)、列表(List)、表格(Table)等,这些组件可以构建出丰富的用户交互界面。SWT的优势在于其与操作系统底层的紧密集成,...
- **事件处理**:SWT提供丰富的事件模型,使得用户交互的处理更加简单。 - **兼容性**:尽管需要针对不同平台的本地库,但SWT支持多种操作系统,包括Windows、Linux、macOS等。 在学习和使用SWT时,了解基本的GUI...
- **命令(Command)**:SWT提供了一种基于事件处理的机制,可以通过命令来触发特定行为。 6. **JFace与SWT的关系** - **JFace**:是Eclipse项目的一部分,建立在SWT之上,提供更高级别的API,简化了UI开发。例如,...
6. **图像处理(Image Handling)**:SWT提供了加载和显示图像的能力,包括位图(Bitmap)、精灵(Sprite)和图标(ImageDescriptor),可轻松地将图形元素整合到应用程序中。 7. **打印支持(Printing Support)**...
在教程中,你可能会遇到如何创建一个简单的窗口、添加控件、处理事件、读写文件等内容的示例。例如,创建一个包含按钮和文本框的窗口: ```java Display display = new Display(); Shell shell = new Shell...
1. **SWT组件使用**:开发者利用SWT库中的Button、Text、Table等控件,创建了输入框、按钮和列表视图,让用户可以方便地添加、编辑和查看联系人信息。 2. **JFace数据绑定**:JFace的数据绑定机制使得界面元素和...
5. **事件处理**:每个SWT控件都可以监听和处理事件,如鼠标点击、键盘输入等,通过添加监听器可以实现相应的业务逻辑。 6. **图像和字体**:SWT支持加载和显示图像,以及对字体的设置和操作,提供了丰富的视觉效果...
SWT包含了一系列的控件,如按钮(Button)、文本框(Text)、标签(Label)、表格(Table)、树形视图(Tree)等,这些基本元素构成了用户界面的主要部分。它们可以直接与操作系统交互,因此在显示和响应速度上通常...