D
dominik
Gast
Hallo,
ich habe folgendes Problem:
Ich habe eine JScrollPane in die ich eine JEditorPane gesteckt habe. Die
JEditorPane ist anfangs leer. Nun kann man über einen Button eine lokale
Datei öffnen und diese in die JEditorPane reinladen. Sobald das Dokument
geladen ist will ich an eine bestimmte Stelle im Dokument scrollen (zb:
beide Scrollbalken in die Mitte). Dies will ich natürlich noch in dem
ActionListener des Buttons machen, mit dem man die Datei auswählen kann
und der die datei dann anzeigt.
Leider ist die Scrollbar im Actionlistener noch nicht aktualisiert,
sprich ich habe noch die alten Werte (so wie wenn das Dokument noch
nicht geladen wäre) für getMaximum() getMinimum() und getValue() auf die
Scrollbar...
Wie kann ich der JScrollPane dazu zwingen, dass sie die Scrollbars
refreshen soll?
Hier ein paar Codeschnipsel:
Leider weiss ich überhaupt nicht wo ich anfassen muss um das Problem zu
lösen.
Hat irgend jemand eine Idee?
Ciao, dominik
ich habe folgendes Problem:
Ich habe eine JScrollPane in die ich eine JEditorPane gesteckt habe. Die
JEditorPane ist anfangs leer. Nun kann man über einen Button eine lokale
Datei öffnen und diese in die JEditorPane reinladen. Sobald das Dokument
geladen ist will ich an eine bestimmte Stelle im Dokument scrollen (zb:
beide Scrollbalken in die Mitte). Dies will ich natürlich noch in dem
ActionListener des Buttons machen, mit dem man die Datei auswählen kann
und der die datei dann anzeigt.
Leider ist die Scrollbar im Actionlistener noch nicht aktualisiert,
sprich ich habe noch die alten Werte (so wie wenn das Dokument noch
nicht geladen wäre) für getMaximum() getMinimum() und getValue() auf die
Scrollbar...
Wie kann ich der JScrollPane dazu zwingen, dass sie die Scrollbars
refreshen soll?
Hier ein paar Codeschnipsel:
Code:
// ************************
// * Die JScollPane bauen *
// ************************
JScrollPane mainScrollPane = null;
JEditorPane mainPane = null;
// [...]
mainPane = new JEditorPane();
mainPane.setEditable(false);
mainScrollPane = new JScrollPane(mainPane);
frame.add(mainScrollPane, BorderLayout.CENTER);
Code:
// ************************************************
// * Der Actionlistener des Buttons der die Datei *
// * öffnet und in die JEditorPane schreibt... *
// ************************************************
public void actionPerformed(ActionEvent event) {
// alte Scrollbar Werte auslesen:
JScrollBar sbV = mainScrollPane.getVerticalScrollBar();
System.out.println("alt min: " + sbV.getMinimum());
System.out.println("alt max: " + sbV.getMaximum());
System.out.println("alt val: " + sbV.getValue());
// Datei auswählen [...]
// Inhalt auslesen in den String fileContent [...]
mainPane.setText(fileContent);
//////////////////////////////////////////////////////
// ScrollbarWerte irgendwie refresehen, aber wie??? //
//////////////////////////////////////////////////////
System.out.println("neu min: " + sbV.getMinimum());
System.out.println("neu max: " + sbV.getMaximum());
System.out.println("neu val: " + sbV.getValue());
// leider sind alle ausgegebenen Werte mit denen identisch die
// man vor dem setzen des neuen Inhalts bekommt... :-(
}
Leider weiss ich überhaupt nicht wo ich anfassen muss um das Problem zu
lösen.
Hat irgend jemand eine Idee?
Ciao, dominik