gpt4 book ai didi

java - SWT 布局 - 无法在 GridLayout 中垂直居中文本小部件

转载 作者:行者123 更新时间:2023-12-02 08:02:45 37 4
gpt4 key购买 nike

我正在将应用程序中的许多 SWT 标签转换为文本小部件,因为我们需要使我们的软件更易于访问。屏幕阅读器很难读取标签值,但如果我们使用只读文本小部件,则可以轻松读取。

将网格布局中的多个标签转换为只读文本后,我们似乎无法使文本垂直居中。下面是一个简单的计算器示例,我们看到了相同的行为。我已经在 GridData 和 Text 上使用了 SWT.CENTER、SWT.FILL,但似乎无法使控件垂直居中。

public void initUI() {

GridLayout g1 = new GridLayout(4, true);
g1.horizontalSpacing = 4;
g1.verticalSpacing = 4;
g1.marginBottom = 5;
g1.marginTop = 5;
shell.setLayout(g1);

String[] buttons = {
"Cls", "Bck", "", "Close", "7", "8", "9", "/", "4",
"5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+"
};

Text display = new Text(shell, SWT.SINGLE);
GridData gridData = new GridData();
gridData.horizontalSpan = 4;
gridData.horizontalAlignment = GridData.FILL;
display.setLayoutData(gridData);

for (int i = 0; i < buttons.length; i++) {

if (i == 2) {
Label lbl = new Label(shell, SWT.CENTER);
GridData gd = new GridData(SWT.FILL, SWT.FILL, false, false);
lbl.setLayoutData(gd);
} else {
Text btn = new Text(shell,SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
btn.setText(buttons[i]);
GridData gd = new GridData(SWT.CENTER, SWT.CENTER, true, true);

gd.widthHint = 50;
gd.heightHint = 30;
btn.setLayoutData(gd);
btn.selectAll();


}
}

}

最佳答案

我认为您的意思是您希望文本水平居中(它已经垂直居中)。进行此更改,它将双向居中(我将 SWT.CENTER 添加到 Text):

Text btn = new Text(shell, SWT.SINGLE | SWT.READ_ONLY
| SWT.BORDER | SWT.CENTER);

关于java - SWT 布局 - 无法在 GridLayout 中垂直居中文本小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8659901/

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