Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[AWT] Wie funktioniert CardLayout?

3 views
Skip to first unread message

Janne 'GKiller' Hyötylä

unread,
Feb 3, 2001, 1:52:28 PM2/3/01
to
Hi,

ich bekomm den Layoutmanager CardLayout nicht in den Griff. Und zwar weiss
ich schlichtweg nicht, wie man dem CardLayout Komponenten hinzufügen kann.

Ich habe es mit folgendem Code versucht:

--code--

CardLayout cl1 = new CardLayout();
setLayout(cl1);
add(panel);

--/code--

Das ist doch eigentlich die "normale" Vorgehensweise, wie sie bei anderen
Layoutmanagern funktioniert (panel ist ein Panel mit einem GridLayout,
welches Bereits vollständig definiert ist).
Jedoch löst das zur Laufzeit nur folgende Exception aus:

Exception in thread "main" java.lang.IllegalArgumentException: cannot add to
lay
out: constraint must be a string
at java.awt.CardLayout.addLayoutComponent(CardLayout.java:151)
at java.awt.Container.addImpl(Container.java:380)
at java.awt.Container.add(Container.java:228)
at PlanetarionCalc.<init>(PlanetarionCalc.java:136) // Zeile 136
ist bei mir add(panel)
at PlanetarionCalc.<init>(PlanetarionCalc.java:28)
at PlanetarionCalc.main(PlanetarionCalc.java:12)


Wie also muss ich CardLayout verwenden? In der API-Doku habe ich auch nichts
gefunden, was mir helfen könnte...

Danke im Voraus,

Janne Hyötylä


Beate Mielke

unread,
Feb 3, 2001, 5:36:06 PM2/3/01
to
Hallo Janne,

da Du dem CardLayout verschiedene Karten zuordnen kannst, mußt Du sie auch
irgendwie unterscheiden. Das geschieht, indem Du ihnen einen belibigen Namen
verpaßt. Angenommen, die Karte soll "Karte1" heißen, dann fügst Du Dein
Panel folgendermaßen hinzu:

CardLayout cl1 = new CardLayout();
setLayout(cl1);

Panel meinPanel = new Panel();
add("Karte1", meinPanel);

HTH

Beate Mielke

> CardLayout cl1 = new CardLayout();
> setLayout(cl1);
> add(panel);

> out: constraint must be a string <-- der String "Karte1" hat gefehlt

0 new messages