Alla koodi, jolla luodaan tekstipaneeli, jossa AbstractDocument.
Komennolla
tekstipaneeliT tp = new tekstipaneeliT(new JTextPane());
tp.doc.replace(0,tp.doc.getLength(), "tekstiä tekstiä tekstiä",attr);
String sisalto = tp.doc.getText(0,tp.doc.getLength());
tp.doc.replace(0,tp.doc.getLength(), sisalto +"\n\tLisättävä teksti",attr);
ei tekstilaatikko päivity heti vaan vasta jonkin ajan kuluttua. Miten saat tekstin heti päivittymään (actionEvent vai repaint() vai mikä?)
tp.repaint() ei tuntunut toimivan.
public class tekstipaneeliT extends JScrollPane {
public AbstractDocument doc;
public JTextPane textpane;
//**************************************************************
public tekstipaneeliT(){
}
//**************************************************************
public tekstipaneeliT(JTextPane textpane){
super(textpane);
this.textpane = textpane;
StyledDocument styledDoc = this.textpane.getStyledDocument();
if (styledDoc instanceof AbstractDocument) {
doc = (AbstractDocument)styledDoc;
} else {
System.err.println("layoutManager: Text pane's document isn't an AbstractDocument!");
System.exit(-1);
}
}
java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)