gpt4 book ai didi

java - 如何阻止 JFace 组合框在窗口调整大小时调整大小?

转载 作者:行者123 更新时间:2023-12-02 04:22:46 24 4
gpt4 key购买 nike

我有一个 Java Eclipse RCP 程序,其中 JFace 组合框内有一个长字符串。现在,当我处于同一 View 中时,组合框会在其上附加一个滚动条以显示全名。但是一旦我调整应用程序窗口的大小,组合框就会自行拉伸(stretch)以容纳长字符串。

如何使组合框保持相同的大小。就像即使我调整窗口大小后它的大小也应该保持固定一样。这是两个屏幕截图来演示该问题。

附注我正在使用一个comboViewer,里面有一个comboBox。

desired behaviour

enter image description here

提前致谢。

最佳答案

如果您使用 GridLayoutGridData 作为布局,您可以在 widthHint 字段中指定一个值来建议组合的宽度.

GridData data = new GridData(SWT.FILL, SWT.CENTER, true, false);

data.widthHint = 100;

preferredResourceCombo.setLayoutData(data);

如果用户使用大字体,使用这样的固定值可能会导致问题。因此计算宽度的另一种方法是使用 Dialog.convertWidthInCharsToPixels:

GC gc = new GC(control);
gc.setFont(control.getFont());
FontMetrics fontMetrics = gc.getFontMetrics();
gc.dispose();

data.widthHint = Dialog.convertWidthInCharsToPixels(fontMetrics, charCount);

如果您的代码位于Dialog中,您可以将其简化为:

data.widthHint = convertWidthInCharsToPixels(charCount);

关于java - 如何阻止 JFace 组合框在窗口调整大小时调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32561924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com