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.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;
import com.sun.java_cup.internal.internal_error;
public class Xm {
int b=0;
int n=0;
String ccString="";
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 < 5; i++) {
TableColumn column = new TableColumn(table, SWT.None);
column.setText("Column " + (i + 1));
column.pack();
}
for (int i = 0; i < 30; i++) {
TableItem item1 = new TableItem(table,0);
item1.setText(new String[]{"","Hatton"+(i+100)," ","44"+i,"第"+i+"组"});
TableEditor editor = null;
TableEditor editor1 = null;
//添加check box
editor = new TableEditor (table);
editor1 = new TableEditor (table);
final Button check = new Button(table, SWT.None);
//check.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
final Button check1 = new Button(table, SWT.RADIO);
//check.setSelection(true);
//check.setFocus();
//check.isFocusControl();
check.setText("匹配");
check.setData(i);
//check.setSelection(false);
check1.setText("选择");
check1.setData(i);
check1.pack();
check.pack();
editor.minimumWidth = check.getSize ().x;
editor.horizontalAlignment = SWT.CENTER;
editor1.minimumWidth = check.getSize ().x;
editor1.horizontalAlignment = SWT.CENTER;
editor.setEditor(check, item1, 0);
editor1.setEditor(check1, item1, 2);
check.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// getSelection()方法用于获得checkbox的选择状态
String status1 = check.getSelection() ? "selected"
: "not selected";
String string=table.getItem((Integer)check.getData()).getText(3);
table.getItem((Integer)check.getData()).setText(3, ccString);
table.getItem(n).setText(3, string);
ccString=string;
System.out.println("checkbox: " + check.getData());
//table.//
System.out.println("table.getItem(4).getText(0)="+table.getItem(3).getText(1));
}
});
check1.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// getSelection()方法用于获得checkbox的选择状态
String status1 = check.getSelection() ? "selected"
: "not selected";
n=(Integer)check1.getData();
ccString=table.getItem(n).getText(3);
System.out.println("checkboxn: " + check1.getData());
//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();
}
//
}
分享到:
相关推荐
事件中的 this相当于document.getElementById(“id”) 替代方法就是将原本 document.getElementById("id").InnerHTML = "填充代码"; 替换成 $("#id").html("填充代码"); <!DOCTYPE html> ...meta
特别是在使用layui框架时,其table组件默认不支持直接解析多级嵌套的JSON数据,因此需要通过特定的方法来解决这一问题。本知识点主要围绕如何在layui table中处理多级嵌套数据以及其解决方案,提供一个具体的例子,...
【标题】"VC6.0 SNMP 协议获取table值"是关于在Microsoft Visual C++ 6.0环境下,利用SNMP(简单网络管理协议)从远程设备获取表(table)数据的应用示例。SNMP是一种广泛用于网络设备管理的标准协议,它允许管理员...
在这个场景下,我们需要掌握如何利用JavaScript有效地获取table中某个td的值,以便实现动态的页面交互。 首先,了解HTML表格的基本结构至关重要。一个表格由`<table>`元素定义,其中包含多个`<tr>`(行)元素,每个...
2. find方法:在获得div后,使用.find("table[name='info']")方法来选取所有具有特定name属性的表格。find方法用于在指定的元素集合中递归地搜索所有匹配的后代元素。 3. 遍历表格:通过for循环结合.eq(i)方法遍历...
- **Columns**:列设置取决于所选的Table Transform模式,提供自动(Auto)、平均(Avg)、最小(Min)、最大(Max)、当前值(Current)、总和(Total)和计数(Count)等多种计算方式。 2. **Paging**: - **Rows per page**...
在本主题“正则取html中table中td中的值”中,我们将探讨如何利用C#编程语言结合正则表达式来从HTML文档的表格(table)中提取td(表格数据单元格)内的内容。这对于网页爬虫、数据提取或自动化测试等场景非常实用。...
如果你想要获取一个表格(table)中的每一行(tr)`td`元素的值,这通常是数据分析或者前端交互的需求。下面我们将详细探讨如何实现这个目标,以及涉及到的相关知识点。 首先,我们需要了解HTML的基本结构。表格在...
### JQuery 获取 Table 一列值的方法详解 在 Web 开发中,经常需要处理表格数据,尤其是在需要对表格中的数据进行批量操作时。使用 JQuery 可以非常方便地获取表格(`<table>`)中某一列的所有值。下面将详细介绍...
### JavaScript 获取 Table 行列值的方法 在网页开发过程中,我们经常会遇到需要处理表格数据的情况。HTML 中的 `<table>` 元素是用来显示表格数据的标准方式之一,而使用 JavaScript 来操作这些表格中的数据则非常...
在事件函数中,通过查找具有layui-table-hover类的元素来获取当前行的data-index属性值,然后将这个值转换为字符串形式,用于从数据集合中获取行数据。最后调用fun.openLayer函数来根据获取的行数据打开一个弹层展示...
标题"uniapp-table中改版uni-table插件"表明我们正在讨论的是对`uni-table`组件的一个定制化改版。这个改版可能源于开发者对原组件功能的不足或者需要添加特定的交互效果。在这个过程中,开发者通常会深入理解组件的...
根据table的id属性和table中的某一个元素定位其在table中的位置 table包括表头,位置坐标都是从1开始算 tableId:table的id属性 queryContent:需要确定位置的内容 def get_table_content(tableId,queryContent): ...
Table支持各种统计操作,如计算均值、标准差、最大值、最小值等。此外,MATLAB提供了丰富的函数库进行更复杂的数据分析和可视化。 6. **与其它数据类型转换**: Table可以很方便地转换为数组、结构体数组或者cell...
在“Bootstrap Table两个Table数据之间行数据拖拽”的主题中,我们主要讨论的是如何实现用户可以通过拖放操作在两个Bootstrap表格之间移动行数据,这种功能在数据管理、比较或重新排序场景中非常实用。 首先,我们...
需要注意的是,启用此功能后,原有的列宽设置(`data-width`)将作为初始值,拖动操作将覆盖这些设定。 在压缩包中的文件可能包含以下内容: - `bootstrap-table-colresize.min.css`:拖动列宽插件的 CSS 文件,...
而“bootstrap-table-export.js”和“tableExport.js”是针对Bootstrap表格的导出插件,它们扩展了表格的功能,允许用户将表格数据导出为各种格式,如CSV、Excel、PDF等,便于数据分析和存储。 首先,我们来详细...
table数据相同时合并单元格,原理:逐行进行比较,相同时隐藏第二行,对第一行添加rowspan 【table数据相同时合并单元格,原理:逐行进行比较,相同时隐藏第二行,对第一行添加rowspan】
`:width`的值来自`tableColumn`对象,通过`tableColumn['tab-table-1'][索引]`获取,这里的`'tab-table-1'`是表格ID,索引对应于`el-table-column`在`tableColumn`数组中的位置。 在`mounted`生命周期钩子中,`...
如果需要,模板会返回空字符串,否则返回实际值。 - **设置`parseData`**:LayUI Table提供了一个`parseData`回调,用于在渲染数据前对其进行处理。在这里,我们可以根据预处理的结果,修改数据源,添加额外的信息...