【问题标题】:eclipse plugin add description to table/tabfoldereclipse插件向表/标签文件夹添加描述
【发布时间】:2015-09-23 12:25:23
【问题描述】:

我正在为 Eclipse 构建一个插件,并使用以下代码在我的视图中放置一个标签文件夹:

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);

   }

这会导致以下窗口:

这是非常好的。但我现在想为此添加描述/一些附加信息,这些信息最终与任务视图中的“0 项”文本位于同一位置:

由于我不确定这会被称为什么,谷歌搜索有点困难(例如,我尝试过“将标题添加到表格”,但标题显然是别的东西。“描述”并没有真正做到把戏要么)。我想有人可以在某个地方的 eclipse 源代码中找到它,但是由于我是 Java 新手,并且潜入 eclipse 源代码并找到我需要的东西需要相当长的时间(至少对我来说),任何人都知道如何在我的 TabFolder 上方添加这行额外的文本?

【问题讨论】:

    标签: java eclipse plugins


    【解决方案1】:

    只需将Label 添加到选项卡文件夹之前的组合中即可。

    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 类,它可以让您将控件放在页面的角落。

    【讨论】:

    • 感谢您的回复!我已经尝试按照您建议的方式添加标签。但这会导致我在表格/标签文件夹左侧设置的文本(使用 .setText)出现很大的空白。它与完整的标签文件夹大小相同,而我的目标只是标签文件夹上方的一个小文本字段(希望您知道我的意思,屏幕截图可以完美解释,但我似乎无法在评论中发布(当然,这本身是有道理的..))
    • 这是您使用的 Layout 的问题。向我们展示创建 Composite 和设置布局的代码
    • 好的。因为我真的只有有限的 Java 经验,我从一个 eclipse 插件视图教程开始(并在此基础上进行了扩展),这一切都始于插件代码中已经存在的 public void createPartControl(Composite parent) 。老实说,我已经想知道这个 Composite 是从哪里来的,但假设它只是你在 Eclipse 中创建插件项目时“免费”/自动获得的东西。反正;猜想创建 Composite 的代码实际上不在我的控制范围内(无论如何,我是一个 Java 初学者,无法修改/查看)
    • 是的,您可以“免费”获得 Composite,但它使用的是 FillLayout,它为每个子控件提供了相等的空间。通常,您创建一个 Composite 作为此组合的唯一子项,并使用其他一些布局(例如 GridLayout)将控件添加到其中。
    • 好的。如果您不介意,我不会接受您的回答,因为我的问题仍然存在。但很高兴知道这只是我实现插件方式的一个缺点。我会尝试考虑重新这样做。非常感谢!
    猜你喜欢
    • 2021-10-19
    • 1970-01-01
    • 2016-12-19
    • 2012-01-31
    • 2020-10-15
    • 2016-06-06
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多