Я разрабатываю (богатый) редактор на основе SWT StyledText
. Есть одна особенность, которую я до сих пор не могу решить. Я хочу, чтобы мой редактор помещал курсор в ширину табуляции как начало предыдущей строки, когда пользователь нажимает Ctrl + u (аналогично Eclipse или Notepad ++, когда пользователи нажимают клавишу Enter). Я пробовал несколько методов, но ничего не работает для меня. Пожалуйста, взгляните на мой пример. Каждое предложение приветствуется. Заранее спасибо.SWT StyledText: Занять позицию следующей строки до ширины табуляции предыдущей строки
StyledText text = new StyledText(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
text.setTabs(5);
text.setText("");
text.setLeftMargin(5);
text.setBounds(0, 0, 512, 391);
text.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int currentLine = text.getLineAtOffset(text.getCaretOffset());
int currCaretOffset = text.getCaretOffset();
if(e.stateMask == SWT.CTRL && e.keyCode == 'u'){
//text.setIndent(text.getOffsetAtLine(currentLine));//doesn't work
text.append("\n");
//text.append("\t");//doesn't work
text.setCaretOffset(text.getCharCount()+text.getTabs());//doesn't work
System.out.println("caret offset "+text.getCaretOffset());
}
}
});
Да, это именно то, что я хотеть сделать. Большое спасибо. Я тоже думаю о том, чтобы заполнить «», но не смог заставить его работать. PS: Я работаю на дисплее Брайля, а белые пробелы иногда не очень хороши, потому что на дисплее Брайля одновременно отображаются ограниченные отображаемые символы (40 символов). Но я попытаюсь справиться с этим. Благодарю. – APex
@APex Вы также можете использовать вкладки. – Baz
Да .. Я тоже пытаюсь это сделать. Спасибо. – APex