Java eclipse插件向表/选项卡文件夹添加说明
我正在为eclipse构建一个插件,并使用以下代码将tabfolder放入我的视图中:Java eclipse插件向表/选项卡文件夹添加说明,java,eclipse,plugins,Java,Eclipse,Plugins,我正在为eclipse构建一个插件,并使用以下代码将tabfolder放入我的视图中: private void constructViewWindow(Composite parent){ final TabFolder tabFolder = new TabFolder(parent, SWT.NONE); terminologyTab = new TabItem(tabFolder, SWT.NONE); grammarTab = new TabItem(tabFol
private void constructViewWindow(Composite parent){
final TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
terminologyTab = new TabItem(tabFolder, SWT.NONE);
grammarTab = new TabItem(tabFolder, SWT.NONE);
styleTab = new TabItem(tabFolder, SWT.NONE);
xmlTab = new TabItem(tabFolder, SWT.NONE);
terminologyTable = new Table(tabFolder, SWT.BORDER);
grammarTable = new Table(tabFolder, SWT.BORDER);
styleTable = new Table(tabFolder, SWT.BORDER);
xmlTable = new Table(tabFolder, SWT.BORDER);
addTableColumns(terminologyTable);
addTableColumns(grammarTable);
addTableColumns(styleTable);
addTableColumns(xmlTable);
terminologyTab.setControl(terminologyTable);
grammarTab.setControl(grammarTable);
styleTab.setControl(styleTable);
xmlTab.setControl(xmlTable);
}
这将导致出现以下窗口:
非常好。但我现在想在此添加一个说明/一些附加信息,它与Tasks视图中的“0项”文本位于同一位置:
由于我不确定这将被称为什么,谷歌搜索有点困难(例如,我尝试过“将标题添加到表中”,但标题显然是其他东西。“描述”也没有真正做到这一点)。我想大家可以在eclipse源代码的某个地方找到这一点,但由于我是Java新手,深入eclipse源代码并找到我需要的东西需要相当长的时间(至少对我来说),有人知道如何在我的TabFolder上方添加这一行文字吗?只需在tab文件夹前面的合成文件中添加一个
标签即可
private void constructViewWindow(Composite parent){
label = new Label(parent, SWT.LEFT);
// TODO set layout on the layout
label.setText("0 items");
final TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
您可能需要在标签上设置布局数据,以确保其宽度足以容纳文本
另一种方法是使用ViewForm
类,该类允许您在页面的角落放置控件。只需在选项卡文件夹之前的组合中添加一个标签
private void constructViewWindow(Composite parent){
label = new Label(parent, SWT.LEFT);
// TODO set layout on the layout
label.setText("0 items");
final TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
您可能需要在标签上设置布局数据,以确保其宽度足以容纳文本
另一种方法是使用ViewForm
类,该类允许您在页面的角落放置控件。感谢您的回复!我已经试过添加一个标签了,完全按照你建议的方式。但这会导致在table/tabfolder的左侧出现一个很大的空白,其中包含我在其中设置的文本(带有.setText)。它与完整的tabfolder大小相同,而我的目标只是tabfolder上方的一个小文本字段(希望你知道我的意思,截图可以很好地解释,但我似乎无法在评论中发布一个(当然,这本身就有意义了…),这是您使用的布局的问题。显示创建组合和设置LayoutOk的代码。由于我在Java方面的经验非常有限,并且我从eclipse插件视图教程开始(并在此基础上进行了扩展),因此所有这些都是从插件代码中已有的public void createPartControl(复合父级)
开始的。坦率地说,我已经想知道这个组合是从哪里来的,但假设它只是在Eclipse中创建插件项目时“免费”或自动获得的。无论如何我猜创建组合的代码实际上不在我的控制范围内(在任何情况下,我都是Java初学者,无法修改/研究它)。是的,您可以“免费”获得该组合,但它使用的是FillLayout
,它为每个子控件提供了相等的空间。通常创建一个组合
作为该组合的唯一子级,并使用一些其他布局(如GridLayout
)将控件添加到该组合中。确定。如果你不介意的话,我不会接受你的回答,因为我的问题仍然存在。但很高兴知道这只是我实现插件的方式的一个缺点。我会试着调查一下,你是怎么做的。现在非常感谢!谢谢你的回复!我已经试过添加一个标签了,完全按照你建议的方式。但这会导致在table/tabfolder的左侧出现一个很大的空白,其中包含我在其中设置的文本(带有.setText)。它与完整的tabfolder大小相同,而我的目标只是tabfolder上方的一个小文本字段(希望你知道我的意思,截图可以很好地解释,但我似乎无法在评论中发布一个(当然,这本身就有意义了…),这是您使用的布局的问题。显示创建组合和设置LayoutOk的代码。由于我在Java方面的经验非常有限,并且我从eclipse插件视图教程开始(并在此基础上进行了扩展),因此所有这些都是从插件代码中已有的public void createPartControl(复合父级)
开始的。坦率地说,我已经想知道这个组合是从哪里来的,但假设它只是在Eclipse中创建插件项目时“免费”或自动获得的。无论如何我猜创建组合的代码实际上不在我的控制范围内(在任何情况下,我都是Java初学者,无法修改/研究它)。是的,您可以“免费”获得该组合,但它使用的是FillLayout
,它为每个子控件提供了相等的空间。通常创建一个组合
作为该组合的唯一子级,并使用一些其他布局(如GridLayout
)将控件添加到该组合中。确定。如果你不介意的话,我不会接受你的回答,因为我的问题仍然存在。但很高兴知道这只是我实现插件的方式的一个缺点。我会试着调查一下,你是怎么做的。现在非常感谢!