JRootPane

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hi !

Also, ich möchte gerne mehrer JButtons in einer Reihe in meinen JFrame platzieren. Dabei soll jedoch einer in einem JRootPane liegen, der dann von einer GlassPane verdeckt wird.

Folgenden Code habe ich programmiert:

Code:
JFrame frame = new JFrame("Button");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
Container container = frame.getContentPane();
container.setLayout(new FlowLayout());
 
        
final JComponent glass = new JComponent(){
	public void update(Graphics g) {
	}
};
glass.setVisible(true);
 		
Container buttonContainer = new Container();
buttonContainer.add(button2);


JRootPane rootPane = new JRootPane(); 
rootPane.setContentPane(buttonContainer);
rootPane.setGlassPane(glass);

container.add(button1);
container.add(aRootPane);
container.add(button3);
container.add(button4);
        
frame.pack();
frame.setVisible(true);


Die Buttons 1, 3 und 4 werden normal angezeigt. Nur der Button 2 aus dem JRootPane ist nicht zusehen.

Was mache ich nur falsch?!
 

m@nu

Bekanntes Mitglied
mal versucht die rootpane per setVisible anzuzeigen?
aber allgemein: darf ich fragen was diese konstruktion soll? ;)
 
G

Gast

Gast
hi m@nu...

Code:
rootPane.setVisible(true);

hat es leider auch nicht getan. Es geht einfach darum beliebige JObjects, nicht nur JButton sondern auch beispielsweise JOptionPane, zuverdecken.

Weisst Du vielleicht noch eine andere Ursache!?

Ich weiss nicht mehr weiter...
:?
 

m@nu

Bekanntes Mitglied
hmm, ich habe noch nie mit einer rootpane gearbeitet... aber mach mal so:
Code:
JRootPane root = frame.getRootPane();
root.add(buttonXy);
kombiniert mit einem layout hats bei mir funktioniert :)
du kannst nicht einer x-beliebeigen component eine rootpane zuweisen... nichteinmal einer JFrame... du musst die bereits bestehende holen und anpassen.

wieso willst du die überhaupt "verdecken"? ... setVisible(false) würde es doch auch tun, nicht?
 
G

Gast

Gast
so... mein Button wird jetzt angezeigt.

Nur leider funktioniert das GlassPane nicht :(
Habe folgenden Code:

Code:
final JComponent glass = new JComponent(){
		public void update(Graphics g) {
		}
	};
	glass.setVisible(true);
	glass.setBounds(  0, 0, 200, 55);
	glass.addMouseListener(new MouseAdapter(){
		public void mousePressed(MouseEvent e) {
			System.out.println("click on glass");
		}	
	});
 		
JRootPane rootPane = new JRootPane(); 
rootPane.setContentPane(button2);
rootPane.setGlassPane(glass);
               
container.add(button1);
container.add(rootPane);
container.add(button3);
container.add(button4);

Eigentlich müsste es doch funktionieren, :( tut's aber nicht.

Sieht vielleicht jemand den Fehler?[/code]
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben