java如何在Windows上使SWT按钮、文本和标签具有相同的高度?
我正在尝试制作一个用于聊天的GUI,我将三个SWT控件放在了一排
不幸的是,我找不到适合他们的漂亮路线
下面的代码
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout(3, false));
Label firstLabel = new Label(shell, SWT.NONE);
firstLabel.setText("PROMPT:");
firstLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
Text firstText = new Text(shell, SWT.NONE);
firstText.setText("hello");
firstText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
Button firstButton = new Button(shell, SWT.PUSH);
firstButton.setText("Say");
firstButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
shell.pack();
shell.open();
shell.setSize(400, 300);
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
给予
也就是说,文本字段和按钮一样高,但文本并没有垂直居中
如果按照下面的方式对文本进行编码
Text firstText = new Text(shell, SWT.NONE);
firstText.setText("hello");
firstText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
我去拿
最美的结果将由
Text firstText = new Text(shell, SWT.BORDER);
firstText.setText("hello");
firstText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
这就是
但按钮也比文本稍高
更新
人们说他们在非windows平台上有很好的效果,但问题可能是如何控制SWT控件的填充/边距
更新2
即使在最好的情况下,文本字段的高度也比Windows上的按钮小,结果取决于平台
# 1 楼答案
下面是一个代码示例,可以让您了解如何解决问题:
看起来像这样:
没有
SWT.BORDER
:# 2 楼答案
我使用一个自定义标签,将实际标签包装在复合材料中