Das erste Mal GridBagLayout - wie geht das?

LukLuk

Aktives Mitglied
Heho Zusammen,
Ich möchte ein Feld mit JButtons haben und mir wurde von gesagt das das GridBagLayout dafür gut ist. So ich hab mir bischen was von Galileo Computing durchgelesen und dort das Beispiel angeschaut. Nun mekert aber das Programm das ich den Componenten Initalisieren muss und bei "component = new Component" wird dann der Fehler "Cannot instantiate the type Component" ausgegeben. Auf Galieleo Computing steht nix davon und ich hab keine Ahnung welcher Wert dem zugewiesen werden muss.

So hier die Stelle aus meinen Code

Java:
GridBagLayout gbl=new GridBagLayout();
		panelCenter.setLayout(gbl);
		GridBagConstraints gbc =new GridBagConstraints();
		Component component ;
		gbc.gridwidth=22;
		gbc.gridheight=13;
		component=new Component();
		gbl.setConstraints(component, gbc);
 
Zuletzt bearbeitet von einem Moderator:
Link Galileo Computing :: Java ist auch eine Insel – 19.11 Alles Auslegungssache: die Layoutmanager ruhig dazuposten

es gibt in Listing 19.20 übrigens ein komplettes Beispiel, um irgendwie mal das Buch zu verteidigen, welches ich auch ständig verlinke 😉
ansonsten reicht aber normalerweise auch ein Kopf zum Denken, auch die zugehörige Beschreibung wie
Danach muss nur noch die Komponente, wie bei jedem anderen Container auch, mit add() hinzugefügt werden.

angenommen du könntest Component instanziieren, was wäre das dann für ein Code, welchen Zweck hätte der gesamte Abschnitt?
deine JButtons spielen offensichtlich noch gar nicht mit und so fällt alles zusammen:
component ist das, was du gerade platzieren willst, einer deiner Buttons,
eine neue Component zu instanziieren kommt nicht in Frage,
 
Ok jetzt kommt nicht mehr der Fehler aber dafür mekert der bei einer anderen Stelle und zwar beim adden da sagt er
Java:
at java.awt.GridBagLayout.addLayoutComponent(Unknown Source)
	at java.awt.Container.addImpl(Unknown Source)
	at java.awt.Container.add(Unknown Source)
	at Layout.<init>(Layout.java:121)
	at Haupt.main(Haupt.java:11)

und das ist hier meine Add-Variante
Java:
panelCenter.add(button[i],gbl);
 
Ich will dich nicht entmutigen, aber mit [c]GridBagLayout[/c] hat man einfach nur Ärger, es ist kompliziert und verhält sich alles andere als intuitiv. Schau dir lieber "externe" Alternativen an wie [c]FormLayout[/c], [c]TableLayout[/c], [c]MigLayout[/c] u.s.w.
 

Zurück
Oben