GlassPane setVisible(true) funktioniert nicht

BlubBlub

Bekanntes Mitglied
Hi,

ich habe folgenden Code geschrieben. In das ContentPane eines JFrames füge ich einen JButton ein.
Anschließend hole ich mir das GlassPane des JFrames und mache es sichtbat mit setVisible(true).

Laut dem unten angegenben Link müsste das GlassPane jetzt alle Events abfangen.
Doch das GlassPane zeigt keine Wirkung.
Was mache ich falsch?

How to Use Root Panes (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Java:
import java.awt.Component;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class GlassPaneTestFrame extends JFrame
{
	private Container contentPane;
	private Component glassPane;
	private JButton button;
	
	public GlassPaneTestFrame()
	{
		super();
		this.setLayout(new FlowLayout());
		setSize(600, 500);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		contentPane = getContentPane();
		glassPane = getGlassPane();
		
		button = new JButton("button");
		button.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				System.out.println("Button Pressed");
				
			}});
		contentPane.add(button);
		
		glassPane.setVisible(true);
		
		setVisible(true);
	}
}
 
MouseEvents werden durch alle Schichten durchgereicht, bis eine Komponente diese "konsumiert".
Wenn man einen MouseListener bzw. MouseAdapter an der Glasspane registriert, sollte der Button nicht mehr anklickbar sein.
 

Zurück
Oben