hallo leute,
ich beschäftige mich seit kurzem mit dem DefaultStyledDocument und bleibe an folgender sache hängen:
im jeditorpane soll, sobald eine runde klammer eingetippt wird, eine geschlossene runde klammer erzeugt werden. das klappt ja soweit. nun möchte ich noch, dass die caret-position zwischen die beiden klammern neu gesetzt wird. habe schon einiges ausprobiert... aber nichts kluges. stehe gerade volle kanne aufm schlauch...
:bahnhof:
danke im voraus!
ich beschäftige mich seit kurzem mit dem DefaultStyledDocument und bleibe an folgender sache hängen:
im jeditorpane soll, sobald eine runde klammer eingetippt wird, eine geschlossene runde klammer erzeugt werden. das klappt ja soweit. nun möchte ich noch, dass die caret-position zwischen die beiden klammern neu gesetzt wird. habe schon einiges ausprobiert... aber nichts kluges. stehe gerade volle kanne aufm schlauch...
:bahnhof:
Java:
import javax.swing.*;
import javax.swing.text.*;
public class Test extends DefaultStyledDocument{
private DefaultStyledDocument doc;
private Element root;
public Test(){
doc = this;
root = doc.getDefaultRootElement();
}
public void insertString(int offset, String str, AttributeSet a) throws BadLocationException{
//Hier die Caret-Position zwischen die runden Klammern setzen
if(str.equals("(")){
str = "()";
}
super.insertString(offset, str, a);
}
public static void main(String a[]) {
JFrame frame = new JFrame("() - Test");
JEditorPane edit = new JEditorPane();
EditorKit editorKit = new StyledEditorKit(){
public Document createDefaultDocument(){
return new Test();
}
};
edit.setEditorKitForContentType("text/java", editorKit);
edit.setContentType("text/java");
frame.getContentPane().add(new JScrollPane(edit));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,100);
frame.setVisible(true);
}
}
danke im voraus!