Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在图片上识别SWT和JFace小部件_Java_Swt_Jface_Mockups - Fatal编程技术网

Java 在图片上识别SWT和JFace小部件

Java 在图片上识别SWT和JFace小部件,java,swt,jface,mockups,Java,Swt,Jface,Mockups,我使用通常的java外观创建了这个模型(见下文),我称之为用户。 现在我想通过使用SWT、JFace、EclipseRCP来实现这个模型 注: 左侧的NVV/RMV/KVG/RKH应根据 选项卡NVV、RMV、KVG是模块、管理布局选项卡的父选项卡 左侧的树菜单打开右侧的选项卡 问题: 我应该使用哪些SWT/JFace类来实现这个模型 你觉得这个模型有什么问题吗?(关于不同的实现、可用性等) 您指定的大多数小部件都可以在EclipseRCP框架中随时使用 首先,您应该在此处查看一些教程: 除

我使用通常的java外观创建了这个模型(见下文),我称之为用户。 现在我想通过使用SWT、JFace、EclipseRCP来实现这个模型

注:

左侧的NVV/RMV/KVG/RKH应根据
选项卡NVV、RMV、KVG是模块、管理布局选项卡的父选项卡
左侧的树菜单打开右侧的选项卡

问题:

  • 我应该使用哪些SWT/JFace类来实现这个模型
  • 你觉得这个模型有什么问题吗?(关于不同的实现、可用性等)

您指定的大多数小部件都可以在EclipseRCP框架中随时使用

首先,您应该在此处查看一些教程:

除此之外,我强烈建议您使用WindowBuilder,这样您就可以轻松地设计GUI:

对于顶部的选项卡文件夹(NVV/RMV…),您可以像这样使用
TabFolder
TabItem

     tabFolder_1 = new TabFolder(this, SWT.NONE);
     tbtmNvv = new TabItem(tabFolder_1, SWT.NONE);
     tbtmNvv.setText("NVV");
     tbtmRmv = new TabItem(tabFolder_1, SWT.NONE);
     tbtmRmv.setText("RMV");
    tableViewer = new TableViewer(tabFolder_1, SWT.BORDER | SWT.FULL_SELECTION);
    table = tableViewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    tbtmRmv.setControl(table);

    tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    tblclmnMyCol = tableViewerColumn.getColumn();
    tblclmnMyCol.setWidth(100);
    tblclmnMyCol.setText("My col");
    expandBar = new ExpandBar(this, SWT.NONE);

    xpndtmItem = new ExpandItem(expandBar, SWT.NONE);
    xpndtmItem.setText("Item 1");

    xpndtmItem_1 = new ExpandItem(expandBar, SWT.NONE);
    xpndtmItem_1.setText("Item2");
代表“我的代码”中的父级
组合
TabFolder
s通过在它们内部放置一个
Control
来工作,只是不要忘记调用
setControl
方法使其内容可见<代码>选项卡文件夹s可以相互嵌套。或者,您可以将RCP View-s用于顶级选项卡

对于中间的表,可以使用JFACS组件,即 TabLeVelue:

     tabFolder_1 = new TabFolder(this, SWT.NONE);
     tbtmNvv = new TabItem(tabFolder_1, SWT.NONE);
     tbtmNvv.setText("NVV");
     tbtmRmv = new TabItem(tabFolder_1, SWT.NONE);
     tbtmRmv.setText("RMV");
    tableViewer = new TableViewer(tabFolder_1, SWT.BORDER | SWT.FULL_SELECTION);
    table = tableViewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    tbtmRmv.setControl(table);

    tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    tblclmnMyCol = tableViewerColumn.getColumn();
    tblclmnMyCol.setWidth(100);
    tblclmnMyCol.setText("My col");
    expandBar = new ExpandBar(this, SWT.NONE);

    xpndtmItem = new ExpandItem(expandBar, SWT.NONE);
    xpndtmItem.setText("Item 1");

    xpndtmItem_1 = new ExpandItem(expandBar, SWT.NONE);
    xpndtmItem_1.setText("Item2");
如果您想知道如何将数据绑定到表,您应该查看我上面提到的教程

对于手风琴,您可以像这样使用
ExpandBar

     tabFolder_1 = new TabFolder(this, SWT.NONE);
     tbtmNvv = new TabItem(tabFolder_1, SWT.NONE);
     tbtmNvv.setText("NVV");
     tbtmRmv = new TabItem(tabFolder_1, SWT.NONE);
     tbtmRmv.setText("RMV");
    tableViewer = new TableViewer(tabFolder_1, SWT.BORDER | SWT.FULL_SELECTION);
    table = tableViewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    tbtmRmv.setControl(table);

    tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    tblclmnMyCol = tableViewerColumn.getColumn();
    tblclmnMyCol.setWidth(100);
    tblclmnMyCol.setText("My col");
    expandBar = new ExpandBar(this, SWT.NONE);

    xpndtmItem = new ExpandItem(expandBar, SWT.NONE);
    xpndtmItem.setText("Item 1");

    xpndtmItem_1 = new ExpandItem(expandBar, SWT.NONE);
    xpndtmItem_1.setText("Item2");
或是一个树之旅:

    treeViewer = new TreeViewer(composite, SWT.BORDER);
    tree = treeViewer.getTree();
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);
您还可以将
TreeViewer
s放置在
ExpandBar

至于布局,我通常坚持使用
GridLayout
,这是一种很好的全方位布局


向您介绍如何使用这些组件/布局恐怕超出了SO答案的范围,但您可以随时查看我链接的教程,它们将帮助您在Eclipse RCP中的工作。

您有NVV/RMV。。。左侧的标题。他们的行为应该是什么?NVV/RMV/KVG/RKH应该按照这里实现的手风琴模式进行行为:ExpandBar是为您准备的。但它没有调整自身大小。你说“它没有调整自身大小”是什么意思?你给我看的手风琴正在改变它的高度。据我所知,膨胀杆的高度是预先计算的。