Swing AutoScroll on MouseEntered...

fl_ex

Bekanntes Mitglied
Guten Morgen,

habe schon einiges Probiert, aber nichts hat gefruchtet!

Ich such ne möglichkeit wenn ich auf ein Panel oder label oder sonstwas ein MouseEnteredEvent drauflege, das das scrollpane dann nacht rechts scrollt und auf einem anderen dann eben nach links...
Hat da jemand ne möglichkeit parat?^^

Am besten wären vllt ein paar Anstöße... nicht direkt eine Lösung, wills ja selber lernen ;)

danke schonmal :)
fl_ex
 

fl_ex

Bekanntes Mitglied
habe etwas geschafft! =D relativ simpel

scrollPane.getHorizontalScrollBar().setValue(scrollPane.getHorizontalScrollBar().getValue() + 10);

hehe xD
 

fl_ex

Bekanntes Mitglied
Noch eine Frage...

Dieser Quellcode funktioniert...

Java:
while (scrollPane.getHorizontalScrollBar().getValue() != scrollPane
						.getHorizontalScrollBar().getMinimum()) {

					scrollPane.getHorizontalScrollBar().setValue(
							scrollPane.getHorizontalScrollBar().getValue() - 3);

					System.out.println("OverLeft");

dieser jedoch nicht:

Java:
while (scrollPane.getHorizontalScrollBar().getValue() != scrollPane
						.getHorizontalScrollBar().getMaximum()) {

					scrollPane.getHorizontalScrollBar().setValue(
							scrollPane.getHorizontalScrollBar().getValue() + 3);

					System.out.println("OverRight");


nach links geht er zurück und stoppt wenn er ganz links ist...nach rechts scrollt er nach rechts, der Balken verschiebt sich jedoch nicht wirklich nach rechts und --> Endlosschleife :/

was mach ich falsch?^^
 
T

Tomate_Salat

Gast
gerade bei Rechnungen nicht mit [c]!=[/c] prüfen, sondern mit [c] <, >, <=, >=[/c]:
Java:
while(wert < MAXIMUM) {
    doSomeMethod();
}
while(wert > MINIMUM) {
    soSomeOtherMethod();
}
 

fl_ex

Bekanntes Mitglied
geht leider auch nicht :/

Java:
			@Override
			public void mouseEntered(MouseEvent arg0) {

				int wert = scrollPane.getHorizontalScrollBar().getValue();

				while (wert < scrollPane.getHorizontalScrollBar().getMaximum()) {
					scrollPane.getHorizontalScrollBar().setValue(
							scrollPane.getHorizontalScrollBar().getValue() + 3);
					
					System.out.println("RIGHT");
					
				}
			}

--> Endlosschleife! :(


EDIT:

in der Konsole mal die Werte ausgegeben :
(das ist jetzt nach Links scrollen!)
" 1087 > 0 "
" 1087 > 0 "
... er bleibt bei 1087 irgendwie stehen :/
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Bei einer Breite von 800 und einem getMaximum()==800 kann ich den Value-wert auf maximal 419 setzen. Höher geht er nicht. Auf mein Maxium komme ich mit dem hier:
Java:
System.out.println(sp.getHorizontalScrollBar().getValue()+sp.getHorizontalScrollBar().getSize().width);

D.h. die maximumprüfung sollte so aussehen:
Java:
@Override
public void mouseEntered(MouseEvent arg0) {
	JScrollBar bar=sp.getHorizontalScrollBar();

	while((bar.getSize().width+bar.getValue())<bar.getMaximum()) {
		bar.setValue(bar.getValue()+3);
		System.out.println("New Value: " + bar.getValue() + "[" +(bar.getSize().width+bar.getValue())+"]" );
	}
	System.out.println("Value is set to Maximum");
}
 

Ähnliche Java Themen

Neue Themen


Oben