Krik
Fleet Admiral
- Registriert
- Juni 2005
- Beiträge
- 11.980
Moin
Ich habe mehrere Probleme mit meiner GUI. Ich verwende Swing.
Erstes Problem:
Dieser Code soll dafür sorgen, dass der Frame nicht zu klein wird:
Das Problem ist, es funktioniert nicht. Ich kann die Fenstergröße mit der Maus kleiner als 640x480 machen. Hab ich an der Sache etwas falsch verstanden oder falsch angewendet?
Zweites Problem:
Das Fenster hat eine JMenuBar. Da ich keinen LayoutManager verwende, muss ich selber dafür sorgen, dass die Components auf dem JFrame richtig ausgerichtet sind und die richtigen Abmessungen. U. a. auch bei ResizeEvents.
Dazu benötige ich die Höhe der JMenuBar, damit ich die absoluten Koordinaten eines Components berechnen kann.
Die Methode <beliebiges JMenuBar-Objekt>.getHeight() gibt aber immer 0 zurück. Und ich hab keinen Plan warum.
Auch hier wieder: Habe ich da was falsch verstanden oder falsch angewendet?
Gruß, Laurin
Ich habe mehrere Probleme mit meiner GUI. Ich verwende Swing.
Erstes Problem:
Dieser Code soll dafür sorgen, dass der Frame nicht zu klein wird:
Code:
// ...
<beliebiges JFrame-Objekt>.addComponentListener(new ResizeEvent());
//...
private static class ResizeEvent extends ComponentAdapter {
public void componentResized(ComponentEvent event) {
if (event.getID() == ComponentEvent.COMPONENT_RESIZED) {
JFrame frame = (JFrame) event.getComponent();
if (frame.getWidth() < 640 || frame.getHeight() < 480)
frame.setSize(Math.max(640, frame.getWidth()), Math.max(480, frame.getHeight()));
}
}
}
Zweites Problem:
Das Fenster hat eine JMenuBar. Da ich keinen LayoutManager verwende, muss ich selber dafür sorgen, dass die Components auf dem JFrame richtig ausgerichtet sind und die richtigen Abmessungen. U. a. auch bei ResizeEvents.
Dazu benötige ich die Höhe der JMenuBar, damit ich die absoluten Koordinaten eines Components berechnen kann.
Die Methode <beliebiges JMenuBar-Objekt>.getHeight() gibt aber immer 0 zurück. Und ich hab keinen Plan warum.
Auch hier wieder: Habe ich da was falsch verstanden oder falsch angewendet?
Gruß, Laurin