# JTabbedPane setSize funktioniert nicht !



## aaron (21. Dez 2003)

Huhu 

Ich kann "p_leer.setSize(0,0);" nicht einstellen. Die Werte, die ich eintrage, ändern die Größe nicht ! 
Das gleiche Problem habe ich auch mit "tabbedPane" . Hier kann ich die Größe auch nicht einstellen. 

Mit:
	
	
	
	





```
JPanel p_leer = new JPanel(); 
p_leer.setSize(new Dimension(10,763));
```
konnte ich das Problem leider auch nicht lösen  

Ich bedanke mich im voraus 
Aaron 


```
import java.awt.*; 
import javax.swing.*; 
public class Test extends JFrame 
{ 

// Konstruktor 
public Test() 
{ 
super(""); 

// TabbedPane 
JTabbedPane tabbedPane = new JTabbedPane(); 

JPanel panel_1 = new JPanel(); 
JPanel panel_2 = new JPanel(); 
JPanel panel_3 = new JPanel(); 
JPanel panel_4 = new JPanel(); 
JPanel panel_5 = new JPanel(); 

tabbedPane.addTab("A", panel_1); 
tabbedPane.addTab("B", panel_2); 
tabbedPane.addTab("C", panel_3); 
tabbedPane.addTab("D", panel_4); 
tabbedPane.addTab("E", panel_5); 

// Panel 
JPanel p_leer = new JPanel(); 
p_leer.setSize(0,0); 

// Container 
Container meinContainer = getContentPane(); 
meinContainer.setLayout(new GridLayout(0,1)); 

// Container add 
meinContainer.add(tabbedPane); 
meinContainer.add(p_leer); 

this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
this.setSize(763,500); 
this.setResizable(false); 
this.setVisible(true); 
} 
public static void main(String[] args) 
{ 
Test fenster = new Test(); 
} 
}
```


----------



## Ebenius (21. Dez 2003)

Zwei Sachen:

1) Im Swing nutzt man eigentlich _setSize()_ nicht, sondern die Methode setPreferredSize() um die Größe zu setzen, die der _LayoutManager_ wenn möglich verwenden soll.

2) Im Swing & AWT werden die Größen von _LayoutManager_n bestimmt. GridLayout ist ganz sicher nicht geeignet für diesen Fall, da alle Komponenten im _GridLayout_ die gleiche Größe haben und Du offenslichtlich die Größe unterschiedlich haben möchtest.

In der API steht das eigentlich ganz gut erklärt.

Es grüßt Ebenius


----------



## Kerberus (21. Dez 2003)

Hier ein Lösungsvorschlag:
(sollte gehen)
Schreib einfach eine eigene Panel-Klasse.


```
public class own_panel extends JPanel
{
 int intern_height;
 int intern_width;

 public own_panel(int heigth, int width)
 {
   intern_heigth = heigth;
   intern_width  = width;
 }

 public Dimension getMinimumSize()
 {
  return new Dimension(intern_heigth,intern_width);
 }

 public Dimension getPreferredSize()
 {
  return getMinimumSize();
 }
}
```

Der Konstruktor verlangt, dass du zwei Integer eingibst, welche benötigt werden, um die Höhe und die Breite einzustellen. Ich hoffe, dass ich helfen konnte.


----------



## Guest (21. Dez 2003)

Hallo 

Danke an euch beiden !
Werde mich gleich an die Arbeit machen.

Gruß
Aarn


----------



## Ebenius (22. Dez 2003)

@Kerberus: Natürlich sollte es gehen. Nur gibt es keinen Grund dafür. _setPreferredSize()_ reicht völlig. Und natürlich den _LayoutManager_ tauschen.

 :!: 





			
				Sun (API aus Runnable) hat gesagt.:
			
		

> This is important because classes should not be subclassed unless the programmer intends on modifying or enhancing the fundamental behavior of the class.



Es grüßt Ebenius


----------

