我正在尝试在 SWT 窗口中制作一个大白框来显示信息。我希望它看起来与标签不同,但我也希望它是不可编辑的。
到目前为止,我只能创建一个带有灰色背面(顶部)的中午可编辑文本框。我的目标是获得List
(在 下Text
)的外观。
(问题List
在于它只能在每个列表项的一行上显示文本。我可能需要显示一段文本)。
您还可以捕获键盘事件并阻止它们。
txtField.addKeyListener( new KeyAdapter() {
public void keyPressed( KeyEvent e ) {
e.doit = false;
}
} );
如果您确实必须使用白色背景,则可以使用普通Text
并阻止对其进行编辑。
但是,正如@Eugene 已经提到的那样,您应该遵守 UI 约定,因为否则可能会使用户感到困惑......
Text
这是一些创建具有“普通”背景的只读文件的代码:
public static void main(String[] args)
{
Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new FillLayout());
Text text = new Text(shell, SWT.BORDER);
text.setText("Read only");
text.addListener(SWT.Verify, new Listener()
{
@Override
public void handleEvent(Event e)
{
e.doit = false;
}
});
shell.pack();
shell.setSize(600, 60);
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
您可以将 SWT.READ_ONLY 传递给您的文本字段构造函数。