gpt4 book ai didi

java - 单击按钮时如何从 CheckboxTableViewer 中删除选定的行(多行)? (表连接到oracle数据库)

转载 作者:行者123 更新时间:2023-12-05 00:56:16 26 4
gpt4 key购买 nike

我有一个 CheckboxTableViewer,它有 10 列,表格是从数据库中填充的,
我在表外有一个名为“删除”的按钮,
我想做的是:-
当我使用复选框选择行(多选)并且当我按下“删除”按钮时,我希望选定的行应该从数据库中删除,并且 tableviewer 应该被刷新。

我在下面粘贴我的 tableviewer 代码:-

    final CheckboxTableViewer dataTable = CheckboxTableViewer.newCheckList(TableComposite2, SWT.MULTI | SWT.H_SCROLL   
| SWT.V_SCROLL | SWT.BORDER |SWT.DM_FILL_BACKGROUND|SWT.FULL_SELECTION);
dataTable .getTable().setHeaderVisible(true);
dataTable .getTable().setLinesVisible(true);
dataTable .setContentProvider(new ArrayContentProvider());


//Action Check box
TableColumn columnCHead=new TableColumn(dataTable .getTable(),SWT.NONE);
columnCHead.setText("Delete");
columnCHead.setWidth(50);
// setting column input
TableViewerColumn columnC=new TableViewerColumn(dataTable ,columnCHead);
columnC.setLabelProvider(new ColumnLabelProvider()
{
public String getText(Object Element)
{

return null;
}
});

TableColumn columnFS1Head=new TableColumn(dataTable .getTable(),SWT.NONE);
columnFS1Head.setText("SOURCE DIRECTORY");
columnFS1Head.setWidth(300);

TableViewerColumn columnFS1=new TableViewerColumn(dataTable ,columnFS1Head);
columnFS1.setLabelProvider(new ColumnLabelProvider()
{
public String getText(Object Element)
{
AgedFileMaster a=(AgedFileMaster)Element;
return a.getDIRECTORY_PATH();
}
enter code here });

……
我有一个删除操作的按钮,(在 table 外面),
当我按下删除按钮时,我希望删除选定的行...
我是 SWT 的初学者。
任何人请帮助......

最佳答案

使用addSelectionListener在您的 Button 上按下按钮时要通知的控件:

button.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent event)
{
// TODO handle delete here
}
});

您需要做两件事来删除数据 - 首先更新您的数据模型以删除对象,其次告诉表查看器模型已更改。

你可以这样做:
dataTable.getTable().setRedraw(false);  // Stop redraw during update

IStructuredSelection selection = (IStructuredSelection)dataTable.getSelection();

for (Iterator<?> iterator = selection.iterator(); iterator.hasNext(); )
{
Object selectedObject = iterator.next();

// TODO remove from data model array

// Tell table view the object has been removed

dataTable.remove(selectedObject);
}

dataTable.getTable().setRedraw(true); // Allow updates to be drawn

调用 dataTable.remove 的替代方法在每个对象上调用 dataTable.refresh最后一次。还有 remove的变体它接受一个对象数组。

关于java - 单击按钮时如何从 CheckboxTableViewer 中删除选定的行(多行)? (表连接到oracle数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22371348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com