Java eclipse插件向表/选项卡文件夹添加说明

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

我正在为eclipse构建一个插件,并使用以下代码将tabfolder放入我的视图中:

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
)将控件添加到该组合中。确定。如果你不介意的话,我不会接受你的回答,因为我的问题仍然存在。但很高兴知道这只是我实现插件的方式的一个缺点。我会试着调查一下,你是怎么做的。现在非常感谢!