swt table空间应用实例
来源:互联网 发布:java https请求 编辑:程序博客网 时间:2024/04/27 15:57
import java.text.Collator;
import java.util.Locale;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
public class App_window {
protected Shell shell;
private Table table;
private TableEditor editor = null;
/**
* Launch the application.
*
* @param args
*/
public static void main(String[] args) {
try {
App_window window = new App_window();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
/**
* Create contents of the window.
*/
protected void createContents() {
shell = new Shell();
shell.setSize(478, 300);
shell.setText("SWT Application");
table = new Table(shell, SWT.BORDER | SWT.CHECK | SWT.FULL_SELECTION
| SWT.HIDE_SELECTION | SWT.VIRTUAL);
table.addControlListener(new ControlAdapter() {
@Override
public void controlResized(ControlEvent e) {
}
});
table.setBounds(10, 10, 442, 214);
table.setHeaderVisible(true);
table.setLinesVisible(true);
editor = new TableEditor(table);
editor.horizontalAlignment = SWT.LEFT;
editor.grabHorizontal = true;
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumn col1 = new TableColumn(table, SWT.LEFT);
col1.setText("姓名");
col1.setWidth(100);
TableColumn col2 = new TableColumn(table, SWT.LEFT);
col2.setText("年龄");
col2.setWidth(100);
TableColumn col3 = new TableColumn(table, SWT.LEFT);
col3.setText("性别");
col3.setWidth(100);
TableColumn col4 = new TableColumn(table, SWT.LEFT);
col4.setText("地址");
col4.setWidth(100);
TableColumn col5 = new TableColumn(table, SWT.LEFT);
col5.setText("电话");
col5.setWidth(100);
/**
* 添加表格数据
*/
new TableItem(table, SWT.LEFT).setText(new String[] { "张三", "22", "男",
"重庆市", "13022332356" });
new TableItem(table, SWT.LEFT).setText(new String[] { "小桥", "22", "女",
"上海市", "13029872222" });
new TableItem(table, SWT.LEFT).setText(new String[] { "小可", "22", "男",
"北京市", "13006800123" });
new TableItem(table, SWT.LEFT).setText(new String[] { "王五", "31", "男",
"武汉市", "13098982201" });
new TableItem(table, SWT.LEFT).setText(new String[] { "天启", "29", "男",
"南宁市", "13024374001" });
new TableItem(table, SWT.LEFT).setText(new String[] { "高乐", "25", "女",
"天津市", "13088888888" });
// 删除菜单
Menu menu1 = new Menu(shell, SWT.POP_UP);
table.setMenu(menu1);
MenuItem menuitem1 = new MenuItem(menu1, SWT.PUSH);
menuitem1.setText("删除");
Button btnNewButton = new Button(shell, SWT.NONE);
btnNewButton.setBounds(372, 230, 80, 27);
btnNewButton.setText("New Button");
menuitem1.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
MessageBox mbox = new MessageBox(shell, SWT.DIALOG_TRIM
| SWT.ICON_INFORMATION);
mbox.setText("删除成功");
mbox.setMessage("删除了" + table.getSelectionCount() + "条记录");
table.remove(table.getSelectionIndices());
mbox.open();
}
});
// 修改table
{
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseDoubleClick(MouseEvent e) {
Control c = editor.getEditor();
if (c != null) {
c.dispose();
}
// 得到选中的行
Point point = new Point(e.x, e.y);
// MessageDialog.openInformation(shell, null,
// point.x+","+point.y);
final TableItem tableitem = table.getItem(point);
// 得到选中的列
int column = -1;
for (int i = 0; i < table.getColumnCount(); i++) {
Rectangle rec = tableitem.getBounds(i);
if (rec.contains(point))
column = i;
}
final int col1 = column;
// 修改年龄,进行微调
if (col1 == 1) {
final Spinner spiner = new Spinner(table, SWT.NONE);
spiner.setMaximum(120);
spiner.setMinimum(1);
spiner.setSelection(new Integer(tableitem.getText(1)));
editor.setEditor(spiner, tableitem, col1);
spiner.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
tableitem.setText(col1, String.valueOf(spiner
.getSelection()));
}
});
} else if (col1 == 2) {
// 修改性别用下拉列表
final Combo comb = new Combo(table, SWT.READ_ONLY);
comb.setItems(new String[] { "男", "女", "未知" });
comb.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
tableitem.setText(col1, comb.getText());
comb.dispose();
super.widgetSelected(e);
}
});
editor.setEditor(comb, tableitem, column);
} else {
// 其他的修改都是用文本框
final Text txt = new Text(table, SWT.NONE);
txt.setText(tableitem.getText(col1));
txt.forceFocus();
editor.setEditor(txt, tableitem, col1);
txt.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
tableitem.setText(col1, txt.getText());
}
});
};
}
});
}
}
}
- swt table空间应用实例
- swt table
- SWT..table
- SWT Table
- SWT Table
- SWT Table
- swt table
- 0320-table表格应用实例
- Java SWT Table Examples
- SWT Table数据
- swt table 使用小结
- SWT - Table的使用
- SWT Table示例
- eclipse SWT table 使用
- SWT Table示例
- SWT Table示例
- SWT实例学习代码例子 -- 学好swt,色色就可以写桌面应用了
- 在swt中使用table
- IT战略规划做什么?
- 用递归和栈的方法实现N皇后求解
- dojo Quick Start/dojo入门手册
- 闭关三个月
- SciTE的配置
- swt table空间应用实例
- 理解Java赋值和参数传递机制.docx
- 新时代新潮流WebOS 【19】走进WebKit
- 在CSDN上开博客了
- 新时代新潮流WebOS 【20】WebKit的结构与解构
- SQL日期格式化应用大全
- 数据结构----排序
- 用 FlexPMD 改进代码质量
- C++中public/private/protected三种继承方式下基类成员对派生类的可见性探讨