Weiches automatisches verschieben eines JSplitPane-Dividers?

Status
Nicht offen für weitere Antworten.

geoadel

Mitglied
Hi,

ich habe eine vertikale JSplitPane, bei der immer, wenn der Mauszeiger ein bisschen länger drin bleibt, der Divider
ein Stück nach oben verschoben werden soll. Unten in der SplitPane ist ein einfaches Label und obendrüber ein Canvas3D.
Mit dem folgenden Code krieg ich das auch wunderbar (sogar mit kleiner Verzögerung) hin:
(splitVertical ist meine JSplitPane)

Code:
	public void mouseEntered(MouseEvent arg0) {
		System.out.println("Mouse entered");	
		timer = new Timer();
		//300 ms. warten
		try {
				Thread.sleep(300);
				splitVertical.setDividerLocation(0.7);
		} catch (InterruptedException e) {
			
		}
	}
        // Hier wird der Divider wieder zurückgesetzt, sobald die Maus nicht mehr
       // im Feld ist
	public void mouseExited(MouseEvent arg0) {
		System.out.println("Mouse left");
		splitVertical.setDividerLocation(0.95);
	}

Die Veränderung geht mir allerdings zu abrupt. Ich würde mir doch eher ein weiches verschieben wünschen,
weiß aber nicht so ganz, wie ich das realisieren kann und wäre für Tips und Hinweise sehr dankbar :D
Toll wäre es, wenn der Divider innerhalb von 0.3 Sekunden oder so nach oben wandern würde.


P.S.:
Ich hoffe, dies ist das richtige Forum, für das Anfängerforum kams mir zu speziell Swing-lastig vor obwohl
ich eigentlich eher Anfänger bin :?: :oops:
Wenn der Code-Schnipsel nicht ausreicht poste ich auch gern mehr :D
 

Jörg

Bekanntes Mitglied
wie wärs mit:

Code:
distance = 0.95 -0.7;
stepcount = 10;
stepwidth = distance / stepcount;
for(int i=0; i < stepcount; i++) {
           Thread.sleep(10); 
            splitVertical.setDividerLocation(0.7 + i*stepwidth);
}

also die Änderung einfach stufenweise machen ...
 

geoadel

Mitglied
Hi Jörg,
danke für die Antwort. Die "stufenweise"-Idee mag ich sehr, sie scheint
leider nicht zu funktionieren. Ich habs jetzt nochmal grob
"gehackt" um sicherzugehen, dass ich das Problem so langsam verstehen:
Code:
		try {
			Thread.sleep(500);
			splitVertical.setDividerLocation(0.8);
			Thread.sleep(500);
			splitVertical.setDividerLocation(0.65);
			Thread.sleep(500);
			splitVertical.setDividerLocation(0.5);
			 
		} catch (InterruptedException e) {
			
		}
Das ist jetzt nicht ganz so elaboriert, wie dein wesentlich besserer Vorschlag, ich steig da aber
jetzt zur Erklärung besser durch :D (bin halt doch eher Anfänger :)
So wie ich mir das denke, sollte der Thread 500 ms schlafen, den Divider auf 0.8 versetzen,
wieder 500 ms schlafen und den Divider wieder versetzen und das ganze nochmal.

Leider tut er das nicht, was offenbar mit meinen unzureichenden Kentnissen von Threads zusammenhängt.
Das Programm wartet nämlich einfach 1,5 sek. und führt dann nur die letzte Änderung aus (vielleicht auch
alle auf einmal aber die letzte ist trotzdem die letzte, sehen kann mans nicht, ist ja zu schnell :shock: )

Da muss ich mir wohl die Thread-Sache nochmal genau anschauen,
vielen Dank für die schöne Idee, die glaub ich auch gut funktionieren wird, sobald ich
die Threads besser verstehe,
liebe Grüße,
Georg

P.S.:
Hab nur deswegen die vereinfachte Version gemacht, weil die Unterschiede da wirklich
visuell sichtbar sein sollten bei der Programmausführung (um sicher zu gehen, dass nicht
einfach meine Augen zu langsam sind :)
 

m@nu

Bekanntes Mitglied
habs jetzt nicht getestet, aber verpack das ganze so:
Code:
SwingUtilities.invokeLater(new Runnable() {
   public void run() {
       // hier dein code            
   }
});

wenn möglich sollten anpassungen im GUI immer so gemacht werden...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B "weiches" Bewegen von einem JComponent AWT, Swing, JavaFX & SWT 18
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
M JavaFX Automatisches Aktualisieren der Seite AWT, Swing, JavaFX & SWT 26
N "Automatisches" erstellen von jButtons AWT, Swing, JavaFX & SWT 1
Thallius Automatisches Scrollen zum aktiven JTextView klappt nicht AWT, Swing, JavaFX & SWT 2
J JavaFX Automatisches Neuzeichnen ("Repaint") abstellen. AWT, Swing, JavaFX & SWT 10
K Swing Automatisches "Packen" beim "Neu-Painten" AWT, Swing, JavaFX & SWT 2
V automatisches neuzeichnen verhindern AWT, Swing, JavaFX & SWT 3
F Swing GUI-Thread für automatisches Update nutzen AWT, Swing, JavaFX & SWT 10
K Automatisches schliessen eines Dialogs AWT, Swing, JavaFX & SWT 4
P Automatisches Mitscrollen der ScrollPane AWT, Swing, JavaFX & SWT 2
S Automatisches Rendern einen JPanels AWT, Swing, JavaFX & SWT 8
V Automatisches Scrollen bei JScrollPane AWT, Swing, JavaFX & SWT 10
S Automatisches Scrollen in einer JTextArea AWT, Swing, JavaFX & SWT 6
Redeason Objekte in meiner GUI verschieben AWT, Swing, JavaFX & SWT 1
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
frager2345 JTextLabel im Flowlayout verschieben AWT, Swing, JavaFX & SWT 4
U JavaFX CheckBoxen in GUI verschieben AWT, Swing, JavaFX & SWT 20
M Polygon per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 26
F Popup Menu etwas verschieben AWT, Swing, JavaFX & SWT 2
K JavaFX Element in HBOX nach rechts verschieben AWT, Swing, JavaFX & SWT 2
J Button lässt sich nicht auf dem JPanel verschieben AWT, Swing, JavaFX & SWT 5
M Swing JPanel flüssig verschieben AWT, Swing, JavaFX & SWT 5
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
N JLabel in JTabbedPane verschieben AWT, Swing, JavaFX & SWT 2
B JavaFX Viewport verschieben AWT, Swing, JavaFX & SWT 3
C LayoutManager Bei verkleinern des Fensters, verschieben sich JPanels übereinander. AWT, Swing, JavaFX & SWT 7
C Swing Geschachteltes GUI mit BorderLayout - Vertikal & horizontal Verschieben AWT, Swing, JavaFX & SWT 1
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3
Y Titel Verschieben AWT, Swing, JavaFX & SWT 11
Z Bildervorschau, MouseDragged das Bild verschieben AWT, Swing, JavaFX & SWT 1
M label mit icon verschieben. AWT, Swing, JavaFX & SWT 1
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
W Buttons verschieben AWT, Swing, JavaFX & SWT 3
Z Plot nach links verschieben!! AWT, Swing, JavaFX & SWT 1
M 3D-Grafik Denkfehler bei Verschieben von Shapes AWT, Swing, JavaFX & SWT 0
T JLabel Nullpunkt verschieben AWT, Swing, JavaFX & SWT 6
K JavaFX Spalten der Tabellen verschieben AWT, Swing, JavaFX & SWT 2
P JList/JScroolPane Text verschieben und text wrappen AWT, Swing, JavaFX & SWT 3
L JFrame von der Taskleiste zu den ausgeblendeten Symbolen verschieben AWT, Swing, JavaFX & SWT 2
O Swing Spalten-Position nach verschieben AWT, Swing, JavaFX & SWT 6
T Swing JButton per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 5
L Componenten im JFrame an genaue stelle verschieben. AWT, Swing, JavaFX & SWT 2
D JSplitPane lässt sich nicht verschieben AWT, Swing, JavaFX & SWT 3
A JLabel verschieben AWT, Swing, JavaFX & SWT 9
bluerob JComponenten verschieben sich bei Fenster wechseln AWT, Swing, JavaFX & SWT 3
J jFrame verschieben verhindern AWT, Swing, JavaFX & SWT 4
H Bild mit KeyListener verschieben AWT, Swing, JavaFX & SWT 2
R JTextField Eingabefeld innerhalb verschieben AWT, Swing, JavaFX & SWT 2
P Rectangle verschieben AWT, Swing, JavaFX & SWT 11
C Bild auf Panel vergrößern und verschieben AWT, Swing, JavaFX & SWT 4
P Objekte anzeigen und verschieben - wie? AWT, Swing, JavaFX & SWT 6
H LayoutManager Panel verschieben sich AWT, Swing, JavaFX & SWT 5
B Element schrittweise verschieben AWT, Swing, JavaFX & SWT 2
G Swing JPanel per Maus verschieben AWT, Swing, JavaFX & SWT 5
K Button verschieben AWT, Swing, JavaFX & SWT 4
T 2D-Grafik gezeichnetes Bild verschieben - rand bleibt sichtbar AWT, Swing, JavaFX & SWT 2
propra Mehrere Objekte gleichzeitig verschieben AWT, Swing, JavaFX & SWT 7
V Swing JScrollPane Viewport verschieben AWT, Swing, JavaFX & SWT 2
propra Objekte auf Zeichenfläche verschieben AWT, Swing, JavaFX & SWT 2
P Swing JTable null values an das Ende verschieben AWT, Swing, JavaFX & SWT 2
M verschieben der Objekte in JPanel nur stückchenweise möglich AWT, Swing, JavaFX & SWT 14
B FlowLayout Buttons verschieben? AWT, Swing, JavaFX & SWT 13
K JButtons innerhalb eines JPanels verschieben (DRAG&DROP) AWT, Swing, JavaFX & SWT 5
R Swing Verschieben eines jButtons mittels MouseDragged AWT, Swing, JavaFX & SWT 4
Z 2D-Grafik Bild auf JPanel verschieben AWT, Swing, JavaFX & SWT 4
D Grafik über JPanels hinweg verschieben AWT, Swing, JavaFX & SWT 2
D Swing Swing Komponenten verschieben AWT, Swing, JavaFX & SWT 7
B Swing AbstractTableModel rows verschieben AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Shapes auf Zeichenfläche gleichmäßig verschieben AWT, Swing, JavaFX & SWT 5
Burny91 Swing Vertical JSplitPane lässt sich nicht nach rechts verschieben AWT, Swing, JavaFX & SWT 2
E Swing Rechteck und Kreise verschieben AWT, Swing, JavaFX & SWT 3
N verschieben von Dateien auf der Festplatte über TreePaths funktioniert nicht AWT, Swing, JavaFX & SWT 10
F Swing Objekte mit Maus verschieben AWT, Swing, JavaFX & SWT 8
E Swing Drag n Drop Verschieben von Labels o.ä. AWT, Swing, JavaFX & SWT 10
K Swing Elemente auf Zeichenfeld verschieben AWT, Swing, JavaFX & SWT 8
C Drag and Drop JPanel auf JPanel nach drop erneut verschieben? AWT, Swing, JavaFX & SWT 3
B JLabel mittels Timer und setLocation verschieben AWT, Swing, JavaFX & SWT 3
M Buttons per Drag & Drop im GridBagLayout verschieben AWT, Swing, JavaFX & SWT 6
C paintComponent mit Maus verschieben - wie? AWT, Swing, JavaFX & SWT 2
T Swing JComboBox: Listeneinträge mit der Maus verschieben AWT, Swing, JavaFX & SWT 5
J showMessageDialog nicht über frame verschieben AWT, Swing, JavaFX & SWT 6
R Bereiche auf Panel verschieben AWT, Swing, JavaFX & SWT 2
U SWT Linien verschwinden nach Verschieben AWT, Swing, JavaFX & SWT 3
D Swing Spaltenköpfe verschieben sich nicht mit, wenn man an horizontaler Scrollbar zieht AWT, Swing, JavaFX & SWT 9
R Swing Frame verschieben AWT, Swing, JavaFX & SWT 3
C JTable mit RowSorter und Drag & Drop: Zeile verschieben AWT, Swing, JavaFX & SWT 4
D Swing Buttons verschieben sich bei umbennenung! AWT, Swing, JavaFX & SWT 3
R Rows und Columns in JTable verschieben? AWT, Swing, JavaFX & SWT 8
N RCP/SWT View durch Programm auf 2. Bildschirm verschieben AWT, Swing, JavaFX & SWT 2
O JTable Zeilen "nach oben" verschieben AWT, Swing, JavaFX & SWT 3
G Listenelemente mit der Maus verschieben AWT, Swing, JavaFX & SWT 4
K JTable Spalten nicht verschieben AWT, Swing, JavaFX & SWT 2
F Verschieben einer Messnadel auf einem Bild AWT, Swing, JavaFX & SWT 2
S Buttons verschieben mit Swing AWT, Swing, JavaFX & SWT 5
R JPanel durch "klicken und ziehen" verschieben AWT, Swing, JavaFX & SWT 8
H Tabelle: Spaltenüberschriften verschieben sich AWT, Swing, JavaFX & SWT 2
T Fenster verschieben => Wann fertig? AWT, Swing, JavaFX & SWT 8
T Synchrones Window-verschieben AWT, Swing, JavaFX & SWT 4
K JFrame verschieben / Inhalt ändern AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben