Swing Größe eines JPanels bestimmen (ohne Border!)

P@u1

Aktives Mitglied
Hallo zusammen,

ich möchte gerne die größe eines JPanels bestimmen, allerdings habe ich mal folgendes ausprobiert:
Ich habe einen JPanel erzeugt, ihm einen Border gegeben und auf Vollbild vergrößert, und dann hiermit mal die Panelbreite ausgeben lassen:
Java:
System.out.println(panel.getSize().width);
System.out.println(panel.getBounds().width);
System.out.println(panel.getWidth());

Meine Auflösung ist 1680x1050.
Heraus kam bei allen drei Ausgaben:
1680.
Allerdings ist an den Seiten ja ein Border, der die Fläche auf die gezeichnet werden kann verkleinert.
Ich würde gerne die Größe der Zeichenfläche bestimmen können.
Wie geht das?
Am besten wäre eine Methode die direkt das zurückliefert, im schlimmsten Fall würde es wohl auch gehen, dass ich die Größe des Borders rausfinde und abziehe, ist aber extraaufwand und evtl kann dann sogar passieren, dass wenn ich das Fenster so klein wie es nur geht mache, sogar unterm Strich negative Größen rauskommen, wenn ich die Border abziehe...
Ich weiß, kann ja dann so machen das es nie unter 0 geht, wäre aber trotzdem nicht so schön und dafür müsst ich dann die größe des Borders wissen.

Vielen Dank schonmal für eure Hilfe!
 
danke, schonmal ein Fortschritt, dass gibt mir die Größe des Borders zurück.
Aber dann muss ich ja leider immer noch rechnen :-(
Gibt es nicht vll ne Methode die direkt das was ich suche zurückgibt (Größe der Zeichenfläche exkl. Borders)?

Edit:
Habs jetzt erstmal so gemacht (nicht besonders schön):
Java:
Rectangle panelBoundsWithoutBorder;
Insets insets = PlotPanel.this.getInsets();
panelBoundsWithoutBorder = new Rectangle(insets.left, insets.top,
panelBounds.width - insets.left - insets.right,
panelBounds.height - insets.top - insets.bottom);
 
Zuletzt bearbeitet:

Zurück
Oben