java - 向 Eclipse 工具栏添加可调整大小的文本

标签 java eclipse eclipse-rcp

在 Eclipse RCP 应用程序中,我想向工具栏添加一个文本小部件,只要用户更改应用程序窗口的大小,该文本小部件就会动态更改。我创建了一个 ControlContribution 并将其添加到 plugin.xml 中的菜单扩展点。

ControlContribution 由保存文本的 Composite 组成。合成的布局设置为网格布局,文本的布局数据是启用了抓取多余水平空间的网格数据。

但是,文本始终保持相同的大小。我还检查了在调整工具栏大小时是否通过向其添加监听器来通知复合 Material 。监听者永远不会被调用。 如何调整文本大小?

来自 ControlContribution 的 createControl() 方法的代码:

Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout());

text = new Text(composite, SWT.SINGLE | SWT.BORDER);
GridData gridDataText = new GridData();
gridDataText.grabExcessHorizontalSpace = true;
gridDataText.horizontalAlignment = GridData.FILL;
text.setLayoutData(gridDataText);

最佳答案

控制贡献位于酷栏内。所以除非Coolbar占用更多的空间,否则贡献就不可能更大。您需要捕获 Coolbar(当创建控件时,遍历父层次结构),然后更改它的大小并更新整个布局

关于java - 向 Eclipse 工具栏添加可调整大小的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5418072/

相关文章:

java - 正则表达式替换除空 ("") 字符之外的所有非字母数字字符

java - 为什么我的组合框无法正确更新其颜色?

java - Eclipse OSGi 包需要另一个包的片段

java - 是否可以在 Yosemite 上运行依赖于 Java 的 .app 而无需为 OS X 2014-001 安装 Java 并直接使用 JRE 8?

java - 如何在 Java 中使域对象适应 GUI

Eclipse 插件依赖消失

java - 蓝牙激活时如何强制警报是否?

java - 具有不可变参数的自引用枚举

eclipse - 在 Eclipse 之上编写自定义 IDE

java - 自动将公共(public)更改为私有(private)(Java)