Ich entwickle einen (Rich) Editor basierend auf SWT StyledText
. Es gibt eine Eigenschaft, die ich bis jetzt nicht lösen kann. Ich möchte, dass mein Editor den Cursor auf die Tabulatorbreite als Anfang der vorherigen Zeile setzt, wenn der Benutzer Strg + u drückt (ähnlich wie Eclipse oder Notepad ++, wenn Benutzer die Eingabetaste drücken). Ich habe mehrere Methoden ausprobiert, aber nichts funktioniert für mich. Bitte sehen Sie sich mein Beispiel an. Jeder Vorschlag ist willkommen. Danke im Voraus.SWT StyledText: Position caret der nächsten Zeile Tabulatorbreite der vorherigen Zeile
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());
}
}
});
Ja, das ist genau das, was ich möchte tun. Vielen Dank. Ich denke auch daran, mich mit "" zu füllen, habe es aber nicht geschafft, es zum Laufen zu bringen. PS: Ich arbeite für die Braille-Anzeige, und Leerräume sind manchmal nicht so gut, weil die Braille-Anzeige die Anzeigezeichen auf einmal begrenzt (40 Zeichen). Aber ich werde versuchen, es zu schaffen. Vielen Dank. – APex
@APex Sie können stattdessen auch Tabs verwenden. – Baz
Ja .. Ich versuche das auch zu tun. Danke. – APex