swt程序table应用问题,请各位高手帮忙 在swt程序中,A窗体有2个表格a,b.如何点击a的某一行,就可以获得a的数据在b中实现.请各位高手请教.如果有可能,请给一些程序例子参考一下,OK? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先,你的问题问的不清楚。什么叫:a的数据在b中实现?如果是用2个JTable的数据互相传递的话,好像有这样一个方法getElementAt(int index)获得以后删除当前a表中的第i个元素并把他传递到b表中 是正行还是某个单元格?单元格的话可以参考int iRowIdx = commoditytable.getSelectedRow();int iColIdx = commoditytable.getSelectedColumn();String obj = (String)commoditytable.getValueAt(iRowIdx, iColIdx); 试试时间监听呢,我记得SWT里面的table有一个事件是以下方法,是对selection的监听table.getVerticalBar().addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { //这里写你自己的处理 } });或者你对table做一个鼠标双击事件监听,如下:table.addMouseListener(new MouseAdapter() { public void mouseDoubleClick(final MouseEvent e) { //这里写你自己的处理 } }); 在下面的代码中,怎样实现从table中获得数据,在table_1中显示出来import org.eclipse.swt.layout.GridLayout;import org.eclipse.swt.widgets.Canvas;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.graphics.Point;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 org.eclipse.swt.widgets.Text;import com.swtdesigner.SWTResourceManager;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Label;public class Ts { private Text text_1; private Text text; private Table table_1; private Table table; private Shell sShell = null; public static void main(String[] args) { Display display = Display.getDefault(); Ts thisClass = new Ts(); thisClass.createSShell(); thisClass.sShell.open(); while (!thisClass.sShell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } private void createSShell() { sShell = new Shell(); sShell.setText("Shell"); sShell.setSize(new Point(700, 500)); table = new Table(sShell, SWT.FULL_SELECTION | SWT.BORDER); table.setBackgroundMode(SWT.INHERIT_FORCE); table.setLinesVisible(true); table.setHeaderVisible(true); table.setBounds(10, 195, 238, 261); final TableColumn newColumnTableColumn = new TableColumn(table, SWT.NONE); newColumnTableColumn.setWidth(61); newColumnTableColumn.setText("行号"); final TableColumn usersname = new TableColumn(table, SWT.NONE); usersname.setWidth(88); usersname.setText("姓名"); final TableColumn sex = new TableColumn(table, SWT.NONE); sex.setWidth(80); sex.setText("性别"); final TableItem newItemTableItem = new TableItem(table, SWT.BORDER); newItemTableItem.setText(2, "男"); newItemTableItem.setText(1, "梦幻"); newItemTableItem.setText(0,"1"); final TableItem newItemTableItem_2 = new TableItem(table, SWT.BORDER); newItemTableItem_2.setText(2, "男"); newItemTableItem_2.setText(1, "无名"); newItemTableItem_2.setText(0, "2"); final TableItem newItemTableItem_3 = new TableItem(table, SWT.BORDER); newItemTableItem_3.setText(2, "男"); newItemTableItem_3.setText(1, "无极"); newItemTableItem_3.setText("3"); table_1 = new Table(sShell, SWT.BORDER); table_1.setLinesVisible(true); table_1.setHeaderVisible(true); table_1.setBounds(254, 195, 428, 261); final TableColumn newColumnTableColumn_3 = new TableColumn(table_1, SWT.NONE); newColumnTableColumn_3.setWidth(71); newColumnTableColumn_3.setText("姓名"); final TableColumn newColumnTableColumn_4 = new TableColumn(table_1, SWT.NONE); newColumnTableColumn_4.setWidth(81); newColumnTableColumn_4.setText("性别"); final TableItem newItemTableItem_1 = new TableItem(table_1, SWT.BORDER); final Label label = new Label(sShell, SWT.NONE); label.setFont(SWTResourceManager.getFont("", 12, SWT.NONE)); label.setText("姓名"); label.setBounds(22, 21, 42, 20); final Label label_1 = new Label(sShell, SWT.NONE); label_1.setFont(SWTResourceManager.getFont("", 12, SWT.NONE)); label_1.setText("性别"); label_1.setBounds(22, 57, 42, 20); text = new Text(sShell, SWT.BORDER); text.setBounds(64, 16, 117, 25); text_1 = new Text(sShell, SWT.BORDER); text_1.setBounds(64, 52, 117, 25); }} 如果做类似的,建议用JFace的TableViewer他也可以添加选择监听器,可以对选择德基和选取第一个元素,这个元素经过强制转型就是表格中显示的选中的那个对象。由于是MVC设计,你可以将他的子对象集合直接设置给 下面的TableViewer.如果你需要连接服务器端的话,就调用后,将返回的集合设置给下面的TableViewer。 关于连接数据库的问题 求助,在线等答案 Thinking in Java有多好? 一个关于 java 正则表达式的问题 java新手,诚心求教! 如果运行一个JAVA程序,拒绝鄙视,诚意的请指教。 j2ee and j2se 为什么我的swing程序突然不能显示中文了 显示为方块。如何解决? 转换问题! scjp(yy2) 急急急!!! 未经调用检查、转换怎么处理
什么叫:a的数据在b中实现?
如果是用2个JTable的数据互相传递的话,好像有这样一个方法getElementAt(int index)
获得以后删除当前a表中的第i个元素并把他传递到b表中
单元格的话可以参考
int iRowIdx = commoditytable.getSelectedRow();
int iColIdx = commoditytable.getSelectedColumn();
String obj = (String)commoditytable.getValueAt(iRowIdx, iColIdx);
table.getVerticalBar().addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
//这里写你自己的处理
}
});
或者你对table做一个鼠标双击事件监听,如下:
table.addMouseListener(new MouseAdapter() {
public void mouseDoubleClick(final MouseEvent e) {
//这里写你自己的处理
}
});
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
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 org.eclipse.swt.widgets.Text;
import com.swtdesigner.SWTResourceManager;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;public class Ts { private Text text_1;
private Text text;
private Table table_1;
private Table table;
private Shell sShell = null; public static void main(String[] args) {
Display display = Display.getDefault();
Ts thisClass = new Ts();
thisClass.createSShell();
thisClass.sShell.open(); while (!thisClass.sShell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
} private void createSShell() {
sShell = new Shell();
sShell.setText("Shell");
sShell.setSize(new Point(700, 500));
table = new Table(sShell, SWT.FULL_SELECTION | SWT.BORDER);
table.setBackgroundMode(SWT.INHERIT_FORCE);
table.setLinesVisible(true);
table.setHeaderVisible(true);
table.setBounds(10, 195, 238, 261); final TableColumn newColumnTableColumn = new TableColumn(table, SWT.NONE);
newColumnTableColumn.setWidth(61);
newColumnTableColumn.setText("行号"); final TableColumn usersname = new TableColumn(table, SWT.NONE);
usersname.setWidth(88);
usersname.setText("姓名"); final TableColumn sex = new TableColumn(table, SWT.NONE);
sex.setWidth(80);
sex.setText("性别"); final TableItem newItemTableItem = new TableItem(table, SWT.BORDER);
newItemTableItem.setText(2, "男");
newItemTableItem.setText(1, "梦幻");
newItemTableItem.setText(0,"1"); final TableItem newItemTableItem_2 = new TableItem(table, SWT.BORDER);
newItemTableItem_2.setText(2, "男");
newItemTableItem_2.setText(1, "无名");
newItemTableItem_2.setText(0, "2"); final TableItem newItemTableItem_3 = new TableItem(table, SWT.BORDER);
newItemTableItem_3.setText(2, "男");
newItemTableItem_3.setText(1, "无极");
newItemTableItem_3.setText("3");
table_1 = new Table(sShell, SWT.BORDER);
table_1.setLinesVisible(true);
table_1.setHeaderVisible(true);
table_1.setBounds(254, 195, 428, 261); final TableColumn newColumnTableColumn_3 = new TableColumn(table_1, SWT.NONE);
newColumnTableColumn_3.setWidth(71);
newColumnTableColumn_3.setText("姓名"); final TableColumn newColumnTableColumn_4 = new TableColumn(table_1, SWT.NONE);
newColumnTableColumn_4.setWidth(81);
newColumnTableColumn_4.setText("性别"); final TableItem newItemTableItem_1 = new TableItem(table_1, SWT.BORDER);
final Label label = new Label(sShell, SWT.NONE);
label.setFont(SWTResourceManager.getFont("", 12, SWT.NONE));
label.setText("姓名");
label.setBounds(22, 21, 42, 20); final Label label_1 = new Label(sShell, SWT.NONE);
label_1.setFont(SWTResourceManager.getFont("", 12, SWT.NONE));
label_1.setText("性别");
label_1.setBounds(22, 57, 42, 20); text = new Text(sShell, SWT.BORDER);
text.setBounds(64, 16, 117, 25); text_1 = new Text(sShell, SWT.BORDER);
text_1.setBounds(64, 52, 117, 25);
}}
由于是MVC设计,你可以将他的子对象集合直接设置给 下面的TableViewer.如果你需要连接服务器端的话,就调用后,将返回的集合设置给下面的TableViewer。