Java 在图片上识别SWT和JFace小部件
我使用通常的java外观创建了这个模型(见下文),我称之为用户。 现在我想通过使用SWT、JFace、EclipseRCP来实现这个模型 注: 左侧的NVV/RMV/KVG/RKH应根据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框架中随时使用 首先,您应该在此处查看一些教程: 除
选项卡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组件,即
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是为您准备的。但它没有调整自身大小。你说“它没有调整自身大小”是什么意思?你给我看的手风琴正在改变它的高度。据我所知,膨胀杆的高度是预先计算的。