我正在为Eclipse RCP应用程序编写视图,并且我正在尝试在文本输入字段中设置选项卡的显示大小。文本小部件声明为:
Text txtInput;
txtInput = new Text(inputHolder, SWT.SINGLE);
尝试使用txtInput.setTabs(4);
设置tabsize(为4个空格而不是默认值8)并没有做任何事情,并查看Text
小部件的source有一行来阻止标签化单行小部件被更改。
void setTabStops (int tabs) {
if ((style & SWT.SINGLE) != 0) return;
//rest of code to change tabStopsize
}
我尝试将Text
小部件设置为SWT.MULTI
样式,并且标签大小按预期更改但我不想要多行输入。
对单线输入进行限制的原因是什么?有什么方法吗?
由于
答案 0 :(得分:1)
正如评论中已经确定的那样,使用Text
和SWT.SINGLE
无法做到这一点。
但,您只需使用StyledText
代替:)
public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new GridLayout(1, false));
StyledText text = new StyledText(shell, SWT.SINGLE | SWT.BORDER);
text.addListener(SWT.Traverse, new Listener()
{
@Override
public void handleEvent(Event e)
{
e.doit = false;
}
});
text.setTabs(4);
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
工作得很好。单行和制表键支持。