GlassPane deaktiviert MouseKlicks nicht

Foermchen82

Top Contributor
Hallo zusammen,

ich habe mir eine Glasspane erstellt:

Java:
public LoadingGlassPane(){
		init();
	}
	
	private void init(){
		MouseListener listener = new MouseAdapter() {
		};
		
		addMouseListener(listener);
        
        setLayout(new BorderLayout());
        setOpaque(false);
        add(new JLabel("Loading", JLabel.CENTER), BorderLayout.CENTER);
	}

in meinem Frame habe ich sie binde ich sie folgendermaßen ein:

[Java]
loadingGlassPane.setVisible(true);
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {

...Aktion ausführen und Daten neu laden...
loadingGlassPane.setVisible(false);
}
});
[/code]

das Problem dabei ist, dass zwar währen des Ladens auf Klicks nicht reagiert wird, jedoch werden die Klicks Quasi "nachgeholt". D.h. alles was ich während des Ladens klicke wird nach dem Laden ausgeführt.

Wie kann ich das verhindern???

danke im voraus
 
G

Gast2

Gast
Nein eben nicht ;) sie werden in die EDT - Queue reingetan...
Brauchst wahrscheinlich ein SwingWorker

Hier noch ne schöne Alternativer zu einer Glasspane, damit man die Aktion dem User auch schön anzeigen kann...
https://jxlayer.dev.java.net/
 
Zuletzt bearbeitet von einem Moderator:

Marco13

Top Contributor
Nein, damit wird es ebgen genau auf dem EDT ausgeführt. Das verwendet man, wenn man von anderen Threads aus etwas auf dem EDT machen will.

Kannst auch mal nach "SwingWorker" suchen, der bietet dazu schon einiges: Der hat eine abstrakte Methode "doInBackground", die in einem eigenen Thread läuft, und eine Methode "done", die (wenn der Background-Task fertig ist) auf dem EDT ausgeführt wird, und die man überschreiben kann, so dass dann z.B. die GlassPane wieder unsichtbar gemacht wird...

EDIT: Zu langsam... naja.... wayne interessierts :D
 

Foermchen82

Top Contributor
ok, also wenn ich direkt einen Thread nehme klappst.

Kann mir jetzt mal bitte einer den unterschied erklären bei der Verwendung von: Threads, SwingUtils und SwingWorker

Danke!!
 
G

Gast2

Gast
EDIT: Zu langsam... naja.... wayne interessierts :D

:p :D...

Es gibt den EDT in diesem wird gezeichnet... Mit SwingUtilities#invokeLater wird dein Runnable in eine EDT - Queue reingelegt. Diese Queue arbeitet die Runnable der Reihe nach ab.
Ein Thread wird im Hintergrung ausgeführt, falls du aber eine GUI Komponente verändern willst , muss das im EDT gemacht werden also musst du die beiden Threads synchronisieren mit SwingUtilities#invokeLater...
Ein SwingWorker ist einer gute Hilfsklasse die das für dich abnimmt und dir dafür Methoden anbietet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Swing Durch GlassPane auf Button klicken und ActionEvent auslösen AWT, Swing, JavaFX & SWT 0
D GlassPane für JPanel AWT, Swing, JavaFX & SWT 2
N Swing Frame mit GlassPane und Popup AWT, Swing, JavaFX & SWT 5
A Swing GlassPane Cursor wird bei fremder Komponente nicht angezeigt AWT, Swing, JavaFX & SWT 3
B GlassPane setVisible(true) funktioniert nicht AWT, Swing, JavaFX & SWT 2
M JComboBox auf GlassPane-Panel AWT, Swing, JavaFX & SWT 2
S Feste Position einer Komponente auf Glasspane AWT, Swing, JavaFX & SWT 6
hdi Swing GUI Sperren mit GlassPane AWT, Swing, JavaFX & SWT 7
K Alle Events abfangen mit GlassPane AWT, Swing, JavaFX & SWT 7
G Probleme mit Glasspane AWT, Swing, JavaFX & SWT 4
J Glasspane Demo von Sun hat Probleme - wie fix ich die? AWT, Swing, JavaFX & SWT 10
A GlassPane wird zu spät angezeigt AWT, Swing, JavaFX & SWT 2
G JDialog hinter Glasspane von JFrame. Geht das? AWT, Swing, JavaFX & SWT 3
TheJavaKid GlassPane AWT, Swing, JavaFX & SWT 5
m@nu Animation in GlassPane: Performanceeinbruch JFrame maximiert AWT, Swing, JavaFX & SWT 17
C Frage zur GlassPane AWT, Swing, JavaFX & SWT 33
G Probleme mit GlassPane AWT, Swing, JavaFX & SWT 3
L GlassPane ein und abschalten AWT, Swing, JavaFX & SWT 3
J GlassPane - an Menupunkte herankommen AWT, Swing, JavaFX & SWT 2
M Problem mit GlassPane AWT, Swing, JavaFX & SWT 4
I GlassPane AWT, Swing, JavaFX & SWT 8
M Glasspane und dispatchen von Events AWT, Swing, JavaFX & SWT 6
M Swing Focus für Buttons deaktiviert --> keine Reaktion mehr auf Tastendrücke AWT, Swing, JavaFX & SWT 5
S JFileChooser // Neuer Ordner anlegen deaktiviert! AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben