gpt4 book ai didi

java - 如何使各种 SWT RowLayout 内的所有按钮具有相同的宽度

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

我想显示一个 5 列 9 行的表格。该表将显示 45 个按钮,每个按钮的按钮文本中都会写有数字。第一列包含从 1 到 9 的数字,因此按钮的宽度小于接下来的四列,因为接下来的列包含两位数的数字。

目标是 5 个 RowLayout 的 45 个按钮具有相同的宽度。

    Composite numbersComposite = new Composite(composite, SWT.NONE);
numbersComposite.setLayout(new GridLayout(5, true));

int rows = 9;
int columns = 5;

for (int i=0; i<columns; i++) {
Composite column = new Composite(numbersComposite, SWT.NONE);
RowLayout columnLayout = new RowLayout(SWT.VERTICAL);
columnLayout.fill = true;
column.setLayout(columnLayout);

for (int j=0;j<rows; j++) {
button = new Button(column, SWT.TOGGLE);
button.setText(""+number);
buttons.add(button);
number++;
}
}

我不想为所有按钮设置固定大小,因为如果用户增加计算机中的字体大小,则固定大小的文本将无法完全可见。

最佳答案

这使用 GridLayout 来处理所有内容,并在所有控件和组合上设置 GridData 以填充列:

for (int i = 0; i < columns; i++) {
Composite column = new Composite(numbersComposite, SWT.NONE);
column.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));

GridLayout columnLayout = new GridLayout();
column.setLayout(columnLayout);

for (int j = 0; j < rows; j++) {
Button button = new Button(column, SWT.TOGGLE);
button.setText(Integer.toString(number));

button.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

buttons.add(button);

number++;
}
}

关于java - 如何使各种 SWT RowLayout 内的所有按钮具有相同的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53155513/

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