# AWTError: BoxLayout can't be shared



## hsilver (10. Feb 2006)

Hallo,

ich hab ein kleines Problem mit meinem GUI.
Folgendes:

Ich habe ein JPanel:


```
jContentPane.setLayout(new BoxLayout(jContentPane, BoxLayout.X_AXIS));
```

in dieses lade ich 8 weitere JPanels:


```
jContentPane.add(getFirstpanel(), null);
...
```


in jedem dieser 8 JPanels verwende ich wiederum das BoxLayout:

```
firstpanel.setLayout(new BoxLayout(getFirstpanel(), BoxLayout.Y_AXIS));
```

wenn ich nun kompiliere bekomme ich folgende Fehlermeldung:


```
Exception in thread "AWT-EventQueue-0" java.awt.AWTError: BoxLayout can't be shared
	at javax.swing.BoxLayout.checkContainer(BoxLayout.java:415)
	at javax.swing.BoxLayout.invalidateLayout(BoxLayout.java:202)
	at java.awt.Container.invalidate(Container.java:1417)
	at java.awt.Component.addNotify(Component.java:5879)
	at java.awt.Container.addNotify(Container.java:2493)
	at javax.swing.JComponent.addNotify(JComponent.java:4469)
	at java.awt.Container.addNotify(Container.java:2500)
	at javax.swing.JComponent.addNotify(JComponent.java:4469)
	at java.awt.Container.addNotify(Container.java:2500)
	at javax.swing.JComponent.addNotify(JComponent.java:4469)
	at java.awt.Container.addNotify(Container.java:2500)
	at javax.swing.JComponent.addNotify(JComponent.java:4469)
	at javax.swing.JRootPane.addNotify(JRootPane.java:680)
	at java.awt.Container.addNotify(Container.java:2500)
	at java.awt.Window.addNotify(Window.java:466)
	at java.awt.Frame.addNotify(Frame.java:501)
	at java.awt.Window.show(Window.java:513)
	at java.awt.Component.show(Component.java:1300)
	at java.awt.Component.setVisible(Component.java:1253)
	at bleichbuzzer.MainFrame$4.run(MainFrame.java:565)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
```

Und zwar genau dann wenn ich mehr als einen der 8 JPanel mit dem obengepasteten Befehl das BoxLayout verpasse.

Nur werd ich hierdraus nicht wirklich schlau...in welchem Sinne sollte ich denn das BoxLayout sharen? Ich erstelle ja immer wieder ein neues...

Wenn ich nach der Java API gehe, kann ich da keine falsche Verwendung des BoxLayouts erkennen.

Trotzdem befürchte ich das hier eher ein Verständnissproblem meinerseits vorliegt....

Vielleicht könnt ihr mir ja helfen...

Version: 3.2.0
Build id: I20051215-1506

JDK: 5.0 Update 4

Liebe Grüsse

Hennig


----------



## Redfrettchen (10. Feb 2006)

Hi,
was macht denn getFirstpanel()? Versuch das mal durch firstpanel bei firstpanel.setLayout() zu ersetzen.


----------

