标签: tableviewer

JFace为SWT添加了什么?

以下是有什么区别的:

  1. TreeViewer&Tree
  2. TableViewer和表格
  3. TreeViewerColumn&TreeColumn
  4. TableViewerColumn和TableColumn

何时使用查看器和常规小部件?

PS:如果你能帮我找到理解它们的好资源,那将是一个很大的帮助.谢谢你!

java eclipse swt jface tableviewer

15
推荐指数
1
解决办法
6035
查看次数

最佳实践 - SWT表,TableViewer,EditingSupport

我正在为我的主GUI添加一个表.它确实显示并且具有它想要显示的数据.但我觉得我的代码很乱,而且结构不正确.我正在寻找一个使用SWT的人来帮助我将正确的代码放在正确的位置.

A类 - 主GUI TableViewer

B类 - (ArrayList)表格/ B1类数据 - ArrayList结构数据模型

A类 - 有创造方法 TableViewer

  //////////////////////////////////////////////////////////////////////////
  //                         createTableViewer()                          //
  //////////////////////////////////////////////////////////////////////////
private TableViewer createTableViewer(Composite parent) {
    viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    createColumns(parent, viewer);
    table = viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    // Layout the viewer
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    viewer.setContentProvider(new ArrayContentProvider());
    *** Getting Array from Class B ***       
    viewer.setInput(AplotDataModel.getInstance().getArrayData());
    viewer.getControl().setLayoutData(gridData);
    return viewer;
}
Run Code Online (Sandbox Code Playgroud)

A类也有createColumns()方法和createTableViewerColumn()方法.

 ////////////////////////////////////////////////////////////////////////// …
Run Code Online (Sandbox Code Playgroud)

java swt tableviewer

14
推荐指数
1
解决办法
2万
查看次数

使用Eclipse TableViewer,如何使用箭头键导航和编辑单元格?

我正在使用TableViewer内容提供商,标签提供商,a ICellModifierTextCellEditors每列.

当用户选择单元格时,如何添加箭头键导航和单元格编辑?我希望这是一种尽可能自然的行为.

在查看了一些在线示例后,似乎有一种旧的方式(使用a TableCursor)和新的方式(TableCursor不与CellEditors?? 混合).

目前,我TableViewer没有光标只会在第一列滚动.底层SWT表将游标显示为null.

是否有通过键盘TableViewer使用CellEditors和单元格导航的好例子?

谢谢!

eclipse jface cursor tableviewer

13
推荐指数
1
解决办法
7239
查看次数

将删除按钮添加到表中的列

是否可以向表格中的单元格添加" 删除"按钮?

我有一个包含5列的表,我想添加第6列.我希望第6列在每行中都有一个删除按钮.

示例行:

| 10002 | 部分| 金属| 001 | 是的| Remove |

这样,用户只需单击按钮即可删除任何不需要的行.

我在表中有一个标记列,它是ComboBox.我创建了一个扩展的类EditingSupport.

我是否需要扩展另一个类EditingSupport,但是创建一个按钮而不是ComboBox

编辑

public class AplotDataTableViewer extends TableViewer
{

    public AplotDataTableViewer(Composite parent, int style) 
    {
        super(parent, style);

        Table table = getTable();
        GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
        table.setLayoutData(gridData);
        createColumns();
        table.setHeaderVisible(true);
        table.setLinesVisible(true);
        setContentProvider(new ArrayContentProvider());
    }

    private void createColumns() {

      String[] titles = { "ItemId", "RevId", "PRL", "Dataset Name", "EC Markup" };
      int[] bounds = { …
Run Code Online (Sandbox Code Playgroud)

java swt jface button tableviewer

8
推荐指数
1
解决办法
2万
查看次数

SWT - 表与TableViewer

我正在使用SWT创建一个新项目.我将在项目中有3或4个不同的表.我对SWT很新,我发现自己要问我应该使用Table或者它应该是一个TableViewer.

我想学习一些关于何时使用Table和何时TableViewer是最佳路线的良好指导.

  1. 使用a TableViewer而不是a 的好处是Table什么?
  2. 所有的表都应该有TableViewer吗?
  3. 如果我正在处理表中的数据,那么这Table是最好的方法吗?

只是真的想要一些清晰度,所以当我创建项目时,我会以正确的方式做到这一点.

编辑

我创建了一个Tablemodel我用于第一个表的类.但该createColumns方法专用于该特定表.

是否可以拥有模板TableViewer类?
我可以将方法更改为更适用于不同的表吗?

以下是该方法的片段:

private void createColumns() {

  String[] titles = { "ItemId", "RevId", "PRL", "Dataset Name", "EC Markup" };
  int[] bounds = { 150, 150, 100, 150, 100 };

  TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0);
  col.setLabelProvider(new ColumnLabelProvider() {
     public String getText(Object element) {
        if(element instanceof AplotDataModel.AplotDatasetData)
           return ((AplotDataModel.AplotDatasetData)element).getDataset().toString();
        return …
Run Code Online (Sandbox Code Playgroud)

java swt jface tableviewer

7
推荐指数
1
解决办法
6799
查看次数

tableviewer与图像的奇怪对齐和布局

我使用TableViewer两列.第一个应该包含文本,第二个应该包含取决于对象状态的图像.标签提供程序是一个扩展LabelProvider和实现的自定义提供程序ITableLayoutProvider.

如果未显示图像,则布局正确,第一列中的文本与左侧对齐. 正确

但是当显示至少一个图像时,第一列中的文本在右侧和中间之间的某处对齐 - 看起来有点难看.

不正确

布局很简单:

availableDevicesList = new TableViewer(this, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION);
availableDevicesList.setContentProvider(new ArrayContentProvider());

Table table = availableDevicesList.getTable();
TableLayout tableLayout = new TableLayout();
table.setLayout(tableLayout);

table.setLinesVisible(true);

tableLayout.addColumnData(new ColumnWeightData(3));
new TableColumn(table, SWT.LEFT);
tableLayout.addColumnData(new ColumnWeightData(1));
new TableColumn(table, SWT.RIGHT);
Run Code Online (Sandbox Code Playgroud)

是什么导致这个问题?

swt jface image alignment tableviewer

6
推荐指数
1
解决办法
1540
查看次数

将图像放入JFace表单元格会导致图像的间隙出现在第一列中

所以我有一个问题,当我将图像添加到JFace表的任何列时,第一列的行为就像它有一个图像,文本缩进了该图像的大小.

这是一个截图,说明了生成它所需代码的观点.反正有没有阻止它发生,因为它真的在我的灯芯上?

问候,

格伦x

在此输入图像描述

package widgets;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.PaletteData;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class ComponentTest {

    private static Image image;

    public static void main(String[] args) {
        final Display display = new Display();
        final Shell shell = new Shell(display);
        shell.setLayout(new GridLayout(1, true));

        TableViewer viewer1 = getViewer(shell, true);
        TableViewer viewer2 = getViewer(shell, false);

        List<String> rows = new ArrayList<String>(); …
Run Code Online (Sandbox Code Playgroud)

java swt jface tableviewer

6
推荐指数
1
解决办法
3720
查看次数

为什么我们需要 JFace Viewers(特别是 TableViewers)的 ContentProviders?

我一直想知道为什么我们需要 JFace TableViewers 的 ContentProviders?我知道ContentProvider类的getElements()方法将返回与表上的行相对应的对象数组或集合,当我们在表上时将调用 getElements 。但我的问题会更具体..setInput(input)

getElements 返回一个数组或对象集合,相反,我可以编写自己的方法来返回一个对象数组,然后在表查看器的实例上执行 setInput ,对吗?

有人可以就我们为什么需要 ContentProviders 给我一个不太技术但简短而令人满意的答案吗?如果没有 ContentProviders,如果我尝试在表上设置输入,那么什么也不会显示......所以当谈到 JFace 时,ContentProvider 和 LabelProvider 是必须的.​​.....

java eclipse swt jface tableviewer

6
推荐指数
1
解决办法
1819
查看次数

TableViewer定义初始排序顺序对数据没有影响

实际上,我像往常一样构建了一个tableviewer,但最初并没有根据为排序定义的列对所有行进行排序.

我正在使用的代码:

viewer.getTable().setSortColumn(viewer.getTable().getColumn(4));
viewer.getTable().setSortDirection(SWT.UP);
Run Code Online (Sandbox Code Playgroud)

只有在手动单击#4列后,我才能获得正确的顺序,否则它将完全遵循链接到ViewContentProvider的对象列表的"插入顺序".你能帮帮我吗?TNX

eclipse jface tableviewer

5
推荐指数
1
解决办法
1525
查看次数

swt table关闭列标题中的排序箭头

我有以下代码,允许我的表中的列按升序或降序排序.

protected void setSortColumn(GridPanelColumn gridPanelColumn, TableColumn column) {
    table.setRedraw(false);
    // check if already selected
    if (sortGridPanelColumn != null && sortGridPanelColumn == gridPanelColumn) {
        // toggle sort order
        sortAscending = !sortAscending;
    } else {
        // set new sort column
        sortGridPanelColumn = gridPanelColumn;
        sortAscending = false;
        table.setSortColumn(column);
    }
    // set sort direction
    table.setSortDirection(sortAscending ? SWT.UP : SWT.DOWN);
    // refresh table
    tableViewer.refresh();
    table.setRedraw(true);
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,当用户单击列标题进行排序时,箭头会导致列名出点(例如:Ccy .. ^)而不是(CCy1 Amount).有没有办法关闭箭头的显示?我宁愿不必费心调整我的网格列只是为了适应箭头,以便不形成点.

关于如何做到这一点的任何想法?

sorting swt tablesorter tableviewer

5
推荐指数
1
解决办法
3400
查看次数

标签 统计

tableviewer ×10

jface ×8

swt ×8

java ×6

eclipse ×4

alignment ×1

button ×1

cursor ×1

image ×1

sorting ×1

tablesorter ×1