如何在 SWT 中限制文本字段的大小?
How to limit the size of text field in SWT?
我有一个 Text
控件和与之关联的 GridLayout
。
当我创建它时,会创建一个具有一定宽度的文本字段。当我在文本字段中输入文本并保存时,我将更新模型。同样,如果我关闭该特定视图并再次打开它,文本字段将扩展为之前输入的文本的宽度。
如何限制这一点并为文本框提供特定宽度,使其不会进一步扩展?
使用 GridData
的 widthHint
字段指定控件宽度。
最简单的情况是:
Text text = new Text(....);
GridData data = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
data.widthHint = 100; // Some width
text.setLayoutData(data);
如果您在从 Dialog
派生的 class 中执行此操作,您可以使用
data.widthHint = convertWidthInCharsToPixels(10); // Some number of characters
以字符为单位指定宽度。
您可以在对话框之外使用:
GC gc = new GC(text);
gc.setFont(text.getFont());
FontMetrics fontMetrics = gc.getFontMetrics();
data.widthHint = fontMetrics.getAverageCharWidth() * chars;
gc.dispose();
我有一个 Text
控件和与之关联的 GridLayout
。
当我创建它时,会创建一个具有一定宽度的文本字段。当我在文本字段中输入文本并保存时,我将更新模型。同样,如果我关闭该特定视图并再次打开它,文本字段将扩展为之前输入的文本的宽度。
如何限制这一点并为文本框提供特定宽度,使其不会进一步扩展?
使用 GridData
的 widthHint
字段指定控件宽度。
最简单的情况是:
Text text = new Text(....);
GridData data = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
data.widthHint = 100; // Some width
text.setLayoutData(data);
如果您在从 Dialog
派生的 class 中执行此操作,您可以使用
data.widthHint = convertWidthInCharsToPixels(10); // Some number of characters
以字符为单位指定宽度。
您可以在对话框之外使用:
GC gc = new GC(text);
gc.setFont(text.getFont());
FontMetrics fontMetrics = gc.getFontMetrics();
data.widthHint = fontMetrics.getAverageCharWidth() * chars;
gc.dispose();