ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
839
839
EMPFEHLEN
-
18.06.09 20:50 #1
Heyhey,
für die Nutzungsbedingungen brauche ich einen Text, darunter ein Kontrollkästchen, das erst aktiviert werden kann, wenn man den Text ganz heruntergescrollt hat:
Ich habe ein(e)- JCheckBox-Objekt
- JEditorPane auf einer JScrollPane
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
JEditorPane jep = new JEditorPane("<html>dies ist ein HTML-Text</html>"); JScrollPane sp = new JScrollPane(jep); //Kontrollkästchen //dem Viewport des JScrollPane-Objekts ChangeListener hinzufügen //wird aufgerufen beim Scrollen public void stateChanged(ChangeEvent e) { if (sp.getViewport().getViewPosition().y >= sp.getHeight()) { //Kontrollkästchen aktivieren } }
Jedoch gibt
nicht die maximale Größe zurück sondern irgendeinen meist kleineren Wert. Dass bewirkt hier, dass das CheckBox-Objekt zu früh aktiviert wird.Code java:1
sp.getHeight()
Mögliche Lösungen:- Ich teste die Maximalposition mit
wenn ich ganz heruntergescrollt habe und übernehme das ins Programm als festen Wert, den muss ich allerdings bei Änderungen und für jede Sprache neu angeben, da sich die Textlänge geringfügig ändert.Code java:1
sp.getViewport().getViewPosition().y
- Ich lasse zur Laufzeit den Scrollbalken ganz nach unten setzen, dann den Wert erfragen und ihn dann wieder ganz nach oben setzen; ich weiß allerdings nicht, wie das geht.
Hatte jemand das Problem schon einmal oder weiß jemand eine Lösung oder einen Vorschlag.
Für jede Hilfe wäre ich dankbar. Denn der erstgenannte Lösungsvorschlag ist ziemlich umständlich.
MfG,
kevin
-
23.06.09 15:33 #2
Hallo,
ich habe vor kurzer Zeit ein ähnliches Problem gelöst.
Abhilfe schafft der AdjustmentListener.
Dieser AdjustmentListener wird dem Vertikalen Scrollbalken vom JScrollPane zugeordnet.
Code :1
scrollpane.getVerticalScrollBar() //Referenz auf den Vertikalen Scrollbalken
Die Methode für den Listener:
Code :1 2 3
public void adjustmentValueChanged(AdjustmentEvent ae) { //TODO: was soll passieren? * }
* In deinem Fall brauchst du: (siehe http://java.sun.com/j2se/1.4.2/docs/...ScrollBar.html)
Code :1 2 3
getMaximum() //Länge des Scrollbalkens getValue() //Momentane Position (glaube von der Oberkante des Schiebers) getVisibleAmount() //(glaube das ist die Länge des Schiebers)
getValue() in unterster Position ergibt mit getVisibleAmount() zusammen getMaximum().
Du kannst es dann einfach mittels if() abfragen und dort den Status von deiner Checkbox ändern.Geändert von HonniCilest (23.06.09 um 15:43 Uhr)
-
23.06.09 21:02 #3
Hallo noch einmal,
haha! Jetzt darf ich eine fröhliche Botschaft überbringen: Es klappt auf Anhieb!!
Vielen Dank! Besser hätte die Antwort nicht sein können..
Lg,
kevin
Ähnliche Themen
-
CSS-Höhenangabe je nach Viewport-Höhe anpassen?
Von josDesign im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 08.10.08, 07:26 -
JScrollPane: ViewPort scrollt nicht mit, wenn RowHeaderView per Tab durchgescrollt
Von galdasc im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 17.09.08, 09:57 -
JScrollPane mit JPanel als ViewPort -> setPreferredSize
Von ToMeFox im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 12.05.06, 13:20 -
JScrollPane mit JPanel als ViewPort -> setPreferredSize
Von ToMeFox im Forum JavaAntworten: 0Letzter Beitrag: 10.05.06, 09:10 -
JLabel oder JPane in JScrollpane.viewport zentrieren
Von Zhoragh im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 28.02.05, 18:55





Zitieren
Login





