G
Guest
Gast
Hallo,
habe eine Frage über ein JEditorPane.
Will das es automatisch nach unten scrollt. Versuche es über Pane.setcarretposition und direkt über
das JScrollPane in dem es sich befindet. Aber es will einfach nicht.
Bei dem Versuch über dem JScollPane, bleibt er komischer Weise eine Zeile vor Ende stehen.
Ich hoffe ihr könnt mir helfen
Gruß
-Patrick
habe eine Frage über ein JEditorPane.
Will das es automatisch nach unten scrollt. Versuche es über Pane.setcarretposition und direkt über
das JScrollPane in dem es sich befindet. Aber es will einfach nicht.
Bei dem Versuch über dem JScollPane, bleibt er komischer Weise eine Zeile vor Ende stehen.
Code:
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class Start extends JFrame {
private JEditorPane editorPane;
private Document doc;
private MutableAttributeSet black;
private MutableAttributeSet red;
private AttributeSet attribute;
public Start() {
super("Color Text");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200, 200);
setLocationRelativeTo(null);
editorPane = new JEditorPane();
JScrollPane scroll = new JScrollPane(editorPane);
getContentPane().add(scroll, BorderLayout.CENTER);
black = new SimpleAttributeSet();
StyleConstants.setForeground(black, Color.black);
red = new SimpleAttributeSet();
StyleConstants.setForeground(red, Color.red);
editorPane.setEditorKit(new StyledEditorKit());
doc = editorPane.getDocument();
append("This ");
//ab jetzt nur rot:
attribute = red;
append("method");
append(" is called");
//wieder schwarz:
attribute = black;
append(" from within the constructor");
append(" to\n initialize the form.");
append(" \n\n\n\n\n Blah Blah Blah.");
append(" \n\n\n\n Blah Blah Blah.");
// Jetzt würde ich es gerne nach unter setzten!!
// Versuch 1: -> geht nicht
editorPane.setCaretPosition(doc.getLength());
// Versuch 2: über JScrollPane nach unter scrollen:
// geht auch nicht!
// bleibt irgendwie bei 70% oder so stehen.
scroll.getVerticalScrollBar().setValue(scroll.getVerticalScrollBar().getMaximum());
}
private void append(String text){
try {
doc.insertString(doc.getLength(), text, attribute);
} catch (BadLocationException ex) {
ex.printStackTrace();
}
}
public static void main(String args[]) {new Start().setVisible(true);}
}
Ich hoffe ihr könnt mir helfen
Gruß
-Patrick