# Bilder (auf JPanels) auf komplette Zellengröße (GridBagLayout) skalieren



## anfaenger123 (27. Aug 2010)

Obwohl ich bei jeder Zelle mit BOTH (fill) geschrieben habe, dass die gesamte Zelle ausgefüllt werden soll (Z. 11), werden die Bilder (223.gif) immer nur in der Originalgröße angezeigt. Das ist für mich aber ein Problem, weil die Bilder sich auf jeden Fall berühren sollen, egal wie groß das Fenster ist.


```
public static void main(String[] args) {
		JFrame mainFrame = new JFrame("Bilder");
		mainFrame.setSize(1280, 1024);
		mainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		GridBagLayout gridbag = new GridBagLayout();
		GridBagConstraints eig = new GridBagConstraints();
		mainFrame.setLayout(gridbag);
		
		
		eigenschaften(eig, 0, 0, 1, 1, 30, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but1 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but1, eig);
		mainFrame.add(but1);
		
		eigenschaften(eig, 1, 0, 1, 1, 20, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but2 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but2, eig);
		mainFrame.add(but2);
		
		eigenschaften(eig, 2, 0, 1, 1, 20, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but3 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but3, eig);
		mainFrame.add(but3);

		eigenschaften(eig, 3, 0, 2, 1, 30, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but4 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but4, eig);
		mainFrame.add(but4);
		
		eigenschaften(eig, 0, 1, 1, 1, 30, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but5 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but5, eig);
		mainFrame.add(but5);
		
		eigenschaften(eig, 1, 1, 1, 1, 20, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but6 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but6, eig);
		mainFrame.add(but6);
		
		eigenschaften(eig, 2, 1, 1, 1, 20, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but7 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but7, eig);
		mainFrame.add(but7);
		
		eigenschaften(eig, 3, 1, 1, 1, 15, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but8 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but8, eig);
		mainFrame.add(but8);
		
		eigenschaften(eig, 4, 1, 1, 1, 15, 50);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but9 = new JLabel(new ImageIcon("223.gif"));
		gridbag.setConstraints(but9, eig);
		mainFrame.add(but9);
		
		mainFrame.setVisible(true);
```

Könnt ihr mir da helfen und sagen, was ich verändern muss?
Vielen Dank im Voraus!


Edit: "eigenschaften" sieht so aus:

```
private static void eigenschaften(GridBagConstraints gbc, int gx, int gy,
			int gw, int gh, int wx, int wy) {
		gbc.gridx = gx;
		gbc.gridy = gy;
		gbc.gridwidth = gw;
		gbc.gridheight = gh;
		gbc.weightx = wx;
		gbc.weighty = wy;
	}
```


----------



## maximilian009 (19. Jun 2011)

Bei mir das selbe Problem.
Ne Lösung wäre nicht schlecht...


----------



## ChrisKu (19. Jun 2011)

Ist das, was Ihr beide vorhabt, nicht eher was für ein GridLayout als für ein GridBagLayout? Soweit ich weiß ändert das Füllen beim GridBagLayout nicht die Größe der Zelle. Beim GridLayout wird das gesamte Panel automatisch in gleich große Zellen unterteilt.


----------

