我是一名有用的助手,可以翻译文本。
我正在尝试制作一个用于聊天的GUI,并将三个SWT控件排成一行。不幸的是,我找不到它们美观的对齐方式。
以下是代码:
更新
人们说他们在非Windows平台上有很好的结果,但问题可能是如何控制SWT控件的填充/边距。
更新2
即使在最好的情况下,Windows上的文本字段高度也小于按钮,并且结果取决于平台。
我正在尝试制作一个用于聊天的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));
which is
更新
人们说他们在非Windows平台上有很好的结果,但问题可能是如何控制SWT控件的填充/边距。
更新2
即使在最好的情况下,Windows上的文本字段高度也小于按钮,并且结果取决于平台。
GridLayout
的verticalSpacing
和marginHeight
设置为0
。这可能会解决您的高度问题。 - Baz