Hallo zusammen,
ich brauche wieder einen Ansatz oder einen Tipp.
Ich habe eine GUI, die aus mehreren verschalchtelten Layouts besteht.
Dadurch stelle ich sicher, dass alle Steuerelemten auf erschiedenen Bildschirmgrößen ordentlich dargestellt werden.
Soweit funktioniert auch alles super. Ich möchte nur noch ein Bild skalieren und muss dazu die noch maximal übrig gebliebene Größe ermitteln.
Die Maske sieht ungefähr so aus:
Oben eine Zeile als Kopfzeile
Mitte links ein gap (also nur ein Label als Abstand zum Rand)
Mitte Mitte ein Bild
Mitte rechts ein Menü mit Buttons
Unten eine Zeile als Fußzeile
So, das Bild selbst ist jetzt im HD-Auflösung und für einige Bildschirme zu groß.
Bevor ich jetzt unterschiedliche Bildgrößen erzeuge, wil ich es lieber skalieren.
Im Moment ist das Bild nicht ganz zu sehen, weil nur ein Teil im Bereich "Bild" sichtbar ist.
So wird aktuell das Bild platziert:
hiermit würde ich die Skalierung vornehmen:
Wenn ich für w und h feste Werte angebe, dann wird das Bild auch skaliert.
Doch, wie bekomme ich heraus, wie viel Platz für "Bild" noch zur Verfügung steht.
Ich habe da einen Ansatz, ich könnte alle Bereich, die schon bereits da sind von der Screen.Size abziehen und somit käme ich auf einen Wert der quasi übrig bliebe.
Ich denke nur, dass das ziemlich umständlich sein wird, sollte die Maske mal wachsen.
Gib es eine Möglichkeit zu sagen: Skalier so groß/klein, was noch übrig ist****?
Danke und Gruß
Marc
ich brauche wieder einen Ansatz oder einen Tipp.
Ich habe eine GUI, die aus mehreren verschalchtelten Layouts besteht.
Dadurch stelle ich sicher, dass alle Steuerelemten auf erschiedenen Bildschirmgrößen ordentlich dargestellt werden.
Soweit funktioniert auch alles super. Ich möchte nur noch ein Bild skalieren und muss dazu die noch maximal übrig gebliebene Größe ermitteln.
Die Maske sieht ungefähr so aus:
Oben eine Zeile als Kopfzeile
Mitte links ein gap (also nur ein Label als Abstand zum Rand)
Mitte Mitte ein Bild
Mitte rechts ein Menü mit Buttons
Unten eine Zeile als Fußzeile
So, das Bild selbst ist jetzt im HD-Auflösung und für einige Bildschirme zu groß.
Bevor ich jetzt unterschiedliche Bildgrößen erzeuge, wil ich es lieber skalieren.
Im Moment ist das Bild nicht ganz zu sehen, weil nur ein Teil im Bereich "Bild" sichtbar ist.
So wird aktuell das Bild platziert:
Code:
ImageIcon img = new ImageIcon (ClassLoader.getSystemResource("grfx/pi1.jpg"));
JLabel picLabel = new JLabel(img);
picPanel.add(picLabel, BorderLayout.CENTER); // Bild wird in CENTER platziert
hiermit würde ich die Skalierung vornehmen:
Code:
img.setImage(img.getImage().getScaledInstance(w, h,Image.SCALE_DEFAULT));
Wenn ich für w und h feste Werte angebe, dann wird das Bild auch skaliert.
Doch, wie bekomme ich heraus, wie viel Platz für "Bild" noch zur Verfügung steht.
Ich habe da einen Ansatz, ich könnte alle Bereich, die schon bereits da sind von der Screen.Size abziehen und somit käme ich auf einen Wert der quasi übrig bliebe.
Ich denke nur, dass das ziemlich umständlich sein wird, sollte die Maske mal wachsen.
Gib es eine Möglichkeit zu sagen: Skalier so groß/klein, was noch übrig ist****?
Danke und Gruß
Marc