Hi, ich mach's kurz: im Anhang ein KSKB. Das Problem: Das grüne Panel sollte eigentlich den kompletten Raum zwischen dem roten Panel links und dem "FSK"-Label rechts füllen.
Denn es hat die selbe Breite wie die darüberliegenden Komponenten zusammenaddiert (=300 px)
Ein
zeigt mir auch für alle Komponenten die eingestellten Werte. Aber das kann nicht stimmen. Entweder das grüne Panel ist kleiner als 300px, oder die Komponenten darüber insgesamt größer als 300px..
Danke für eure Hilfe!
Denn es hat die selbe Breite wie die darüberliegenden Komponenten zusammenaddiert (=300 px)
Ein
Java:
System.out.println(<component>.getSize().width);
Danke für eure Hilfe!
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GBLDemo extends JFrame {
public static void main(String[] args) {
new GBLDemo().setVisible(true);
}
public GBLDemo() {
add(new GBLPanel());
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
class GBLPanel extends JPanel {
private JLabel title = new JLabel("title");
private JLabel country = new JLabel("country");
private JLabel year = new JLabel("year");
private JLabel genre = new JLabel("genre");
private JLabel format = new JLabel("format");
private JLabel fsk = new JLabel("FSK");
private JPanel rating = new JPanel();
private JPanel cover = new JPanel();
public GBLPanel() {
title.setPreferredSize(new Dimension(200, 20));
country.setPreferredSize(new Dimension(50, 20));
year.setPreferredSize(new Dimension(50, 20));
format.setPreferredSize(new Dimension(150, 20));
genre.setPreferredSize(new Dimension(150, 20));
fsk.setPreferredSize(new Dimension(50, 70));
cover.setPreferredSize(new Dimension(50, 70));
rating.setPreferredSize(new Dimension(300, 30));
rating.setBackground(Color.GREEN);
cover.setBackground(Color.RED);
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 3;
add(cover, c);
c.gridx = 1;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 1;
add(title, c);
c.gridx = 2;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 1;
add(country, c);
c.gridx = 3;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 1;
add(year, c);
c.gridx = 1;
c.gridy = 1;
c.gridwidth = 1;
c.gridheight = 1;
add(genre, c);
c.gridx = 2;
c.gridy = 1;
c.gridwidth = 1;
c.gridheight = 1;
add(format, c);
c.gridx = 1;
c.gridy = 2;
c.gridwidth = 3;
c.gridheight = 1;
add(rating, c);
c.gridx = 4;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 3;
add(fsk, c);
}
}
}