# JFrame ohne "Titelbalken"



## mikachu (12. Nov 2009)

Mahlzeit,

ist es möglich ein JFrame ohne den ganzen Krimskrams drumherum zu erstellen? Also ohne Titelleiste, Minimieren- und Maximierenknopf sowie Beendenknopf?

Danke,
mikachu


----------



## javimka (12. Nov 2009)

[c]setUndecorated(true);[/c]


----------



## mikachu (12. Nov 2009)

setUndecorated(): Disables or enables decorations for this frame. This method can only be called while the frame is not displayable.

Es kommt eine IllegalComponentStateException!


----------



## eRaaaa (12. Nov 2009)

du musst das vor setvisible, pack() etc. aufrufen !


----------



## mikachu (12. Nov 2009)

Pluspunkt der zweite heute ;-)

Nein, jetzt mal im Ernst... geht das überhaupt!?

Als nächstes, wenn das dann mal geht, kann man den Frame auch transparent machen!?


----------



## eRaaaa (12. Nov 2009)

wie sieht denn dein code aus?

KSKB:

```
public class WhatEver{
public static void main(String... args) {
		JFrame frame = new JFrame();
		JPanel panel = new JPanel();

		panel.add(new JButton("klar geht das!!"));
		frame.add(panel);
		frame.setUndecorated(true);
		frame.pack();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
	}
}
```


----------



## mikachu (12. Nov 2009)

da muss es an der Reihenfolge der Operationen gelegen haben.

Danke vielmals!

Jetzt noch die Frage wegen der Transparenz des ContentPane's.


----------



## eRaaaa (12. Nov 2009)

da muss ich selber leider passen, aber das sieht recht ordentlich aus:
Translucent and Shaped Swing Windows | Java.net


----------



## mikachu (13. Nov 2009)

So, nun muss man das ja während des Erstellens mit spezifizieren.

Das brauch ich leider nicht. Schön wäre etwas, womit die Titelleiste nach einem definierten Zeitfenster sich alleine "ausblendet" (sowas hab ich beim Windows MediaPlayer mal gesehen).

Das eben die Titelleiste erst bei definiertem Event erscheint (Maus drüber).


----------



## eRaaaa (13. Nov 2009)

mhm...naja..hier mal nen kleines beispiel, wie ,wann und worauf du das nun anwendest musst du schauen:

```
final JFrame frame = new JFrame();
		JPanel panel = new JPanel();
		JButton button = new JButton("action");
		panel.add(button);
		button.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				frame.dispose();
				frame.setUndecorated((frame.isUndecorated()?false:true));
				frame.pack();
				frame.setVisible(true);
				
			}
		});
		frame.add(panel);
		frame.setUndecorated(false);
		frame.pack();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
```

vllt halt immer einen timer laufen lassen bei inaktivitität, wenn bestimmte zeit erreicht wird, leiste ausblenden(siehe code) ...bei focus timer zurücksetzen, titelleiste einblenden. sollte irgendiwe machbar sein


----------



## mikachu (13. Nov 2009)

Ich danke dir vielmals 

Genau dieses Snippet hat mir gefehlt.


----------

