Layout-Manager

So ganz komme ich da irgendwie nicht weiter - alles ins getContentPane() zu adden ist kein Problem, allerdings dann ja (wie gesagt) ohne den gewünschten Erfolg - die Objekte verschieben sich.
Wenn ich es mit verschiedenen Panels versuche, dann klappt's nicht - hier mein Quelltext:
Code:
hauptpane = getContentPane();
Container cont = new Container();
b_eingeben = new JToggleButton("neuen Datensatz eingeben");
b_eingeben.addActionListener(this);
addComponent(cont, gbl, b_eingeben, 0, 0, 1, 1, 100, 100, 10, 10, 5, 5 );
b_suchaendern = new JToggleButton("Datensatz suchen/ändern");
b_suchaendern.addActionListener(this);
addComponent(cont, gbl, b_suchaendern, 1, 0, 1, 1, 100, 100, 10, 10, 5, 5);
bg = new ButtonGroup();
bg.add(b_eingeben); bg.add(b_suchaendern);
b_ende = new JButton("Programm beenden");
b_ende.addActionListener(this);
addComponent(cont, gbl, b_ende, 2, 0, 1, 1, 100, 100, 10, 10, 5, 5);
setContentPane(hauptpane);
hauptpane.setVisible(true);
hauptpane.add(cont);

und dazu dann die Methode addComponent():
Code:
void addComponent(Container container,
        GridBagLayout gblayout,
        Component c,
        int x, int y,
        int width, int height,
        int weightx, int weighty,
        int insleft, int insright,
        int instop, int insbottom )
{
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridx = x; gbc.gridy = y;
gbc.gridwidth = width; gbc.gridheight = height;
gbc.weightx = weightx; gbc.weighty = weighty;
gbc.insets.left = insleft; gbc.insets.right = insright;
gbc.insets.top = instop; gbc.insets.bottom = insbottom;
gblayout.setConstraints( c, gbc );
container.add(c);
}

Ich hab irgendwie ein Problem, mit den verschiedenen Panes und Containern klazukommen bzw zu verstehen, was ich jetzt wo adden will/muss.

Kann mir dabei vielleicht nochmal jemand helfen?
Das soll auch vorerst mein letztes Problem sein, denn dann ist mein kleines Programmchen erstmal soweit fertig und es kommen nur noch ein paar schönheitskorrekturen :-)
 
Original geschrieben von philbo
So ganz komme ich da irgendwie nicht weiter - alles ins getContentPane() zu adden ist kein Problem, allerdings dann ja (wie gesagt) ohne den gewünschten Erfolg - die Objekte verschieben sich.
Wenn ich es mit verschiedenen Panels versuche, dann klappt's nicht

Ich hab irgendwie ein Problem, mit den verschiedenen Panes und Containern klazukommen bzw zu verstehen, was ich jetzt wo adden will/muss.

Kann mir dabei vielleicht nochmal jemand helfen?

Das alles auszuführen beansprucht nun wirklich mehr Zeit als ich opfern kann.
Folgendes Vorgehensweise:
Pro Einheit ein eigenes Panel:
Code:
JPanel jpButtons = new JPanel(); // ein Panel für die Buttons
JPanel jpContents = new JPanel(); // ein Panel für den Inhalt
JPanel jpMisc = new JPanel(); // ein Panel für was weiss ich

Diese Panel fügst Du dem Gesantteil zu

Code:
add(
			jpButtons,
			new GridBagConstraints(
				0,
				0,
				1,
				1,
				1.0,
				0.0,
				GridBagConstraints.NORTHWEST,
				GridBagConstraints.HORIZONTAL,
				new Insets(0, 0, 0, 0),
				0,
				0));
add(
			jpContents,
			new GridBagConstraints(
				0,
				1,
				1,
				1,
				1.0,
				0.0,
				GridBagConstraints.NORTHWEST,
				GridBagConstraints.HORIZONTAL,
				new Insets(0, 0, 0, 0),
				0,
				0));
add(
			jpMisc,
			new GridBagConstraints(
				0,
				2,
				1,
				1,
				1.0,
				0.0,
				GridBagConstraints.NORTHWEST,
				GridBagConstraints.HORIZONTAL,
				new Insets(0, 0, 0, 0),
				0,
				0));

(Evtl. nicht direkt add sondern getContentPane().add)
So, und den einzelnen Panels fügst Du die Komponenten hinzu:
Code:
jpButtons.add(
			jbMyButton,
			new GridBagConstraints(
				0,
				0,
				1,
				1,
				1.0,
				0.0,
				GridBagConstraints.NORTHWEST,
				GridBagConstraints.HORIZONTAL,
				new Insets(0, 0, 0, 0),
				0,
				0));

usw.
Diese ganze Hampelei mit einer eigenen addComponent()-Methode würde ich einfach weglassen, sondern direkt hinzufügen/entfernen wie o.a.

Das soll auch vorerst mein letztes Problem sein, denn dann ist mein kleines Programmchen erstmal soweit fertig und es kommen nur noch ein paar schönheitskorrekturen :-)

"Nur noch" sind zwei ganz gefährliche Worte mit immensen Auswirkungen... ;)
Ausserdem weisst Du ja: 90% der Arbeit lässt sich in 10% der Zeit erledigen, für die restlichen 10% wird 90% der Zeit benötigt... ;)
 
Das alles auszuführen beansprucht nun wirklich mehr Zeit als ich opfern kann.
Näher auszuführen brauchst du das auch gar nicht, reicht so vollkommen...

Danke mal wieder.
Dann werde ich mich mal da ranmachen. Dachte mit der Addcomponent -Methode würde der Quelltext übersichtlicher werden, weil das in den Java-Büchern auch so beschrieben wird, aber es sind ja auch nur ein paar Zeichen, die man damit weniger tippt.

Oh man, dann hab ich ja noch 90% der Zeit vor mir :-) Nur blöd, dass ich "nur" noch 2 Wochen hier bin *g*
Aber ich dachte schon ich hab jetzt nix mehr zu tun hier.

Ich habe übrigens das Problem, dass ich in meinem Betrieb, wo ich eigentlich Ausbildung mache (bin hier zur Zeit für 3 Monate zur "Verbundausbildung"), überhaupt nix mehr mit JAVA zu tun haben werde. Ich will aber nicht komplett den Faden verlieren, aber mir fehlen privat einfach Ideen, was ich denn anstellen könnte. Hast du vielleicht Tipps für mich, um am Ball zu bleiben?!

Gruß
Philipp
 
Original geschrieben von philbo

Danke mal wieder.
Dann werde ich mich mal da ranmachen. Dachte mit der Addcomponent -Methode würde der Quelltext übersichtlicher werden, weil das in den Java-Büchern auch so beschrieben wird, aber es sind ja auch nur ein paar Zeichen, die man damit weniger tippt.

Ich kenne einige Beispiele aus Büchern, die ... suboptimal sind.

Ich habe übrigens das Problem, dass ich in meinem Betrieb, wo ich eigentlich Ausbildung mache (bin hier zur Zeit für 3 Monate zur "Verbundausbildung"), überhaupt nix mehr mit JAVA zu tun haben werde. Ich will aber nicht komplett den Faden verlieren, aber mir fehlen privat einfach Ideen, was ich denn anstellen könnte. Hast du vielleicht Tipps für mich, um am Ball zu bleiben?!

Gruß
Philipp

Ich würde Dir ja gerne mein OpenSource-Projekt anbieten, aber mir scheint, Deine Kenntnisse sind noch einiges zu dünn, um einzusteigen und produktiv mitzumachen.
Überleg Dir einfach ein (oder mehrere) Programm, erweitere es. Hast Du irgendein Hobby? Kannst Du dafür kein Programm schreiben? Oder für Eueren Verein irgendwas? Lass Dir was einfallen, lass Deiner Phantasie freien Lauf.
 
Ich würde Dir ja gerne mein OpenSource-Projekt anbieten, aber mir scheint, Deine Kenntnisse sind noch einiges zu dünn, um einzusteigen und produktiv mitzumachen.
Das denke ich auch :)

Überleg Dir einfach ein (oder mehrere) Programm, erweitere es. Hast Du irgendein Hobby? Kannst Du dafür kein Programm schreiben? Oder für Eueren Verein irgendwas? Lass Dir was einfallen, lass Deiner Phantasie freien Lauf.

Hmm, na gut...mir wird schon von Zeit zu Zeit was einfallen, und wenn ich nur die Programme, die wir in der Schule in C++ schreiben, nochmal in Java schreibe.

Danke auf jeden Fall für die gute Hilfe hier im Forum!
 
Zurück