java layout manager mit swing

also ich möchte ein gui aufbauen in dem die menüpunkte auf der linken seite untereinander angeordnet sind und habe da ein paar probleme mit dem layout manager ... so soll es aussehen:

Textfeld: ...
Textfeld: ...
Textfeld: ...

aber bei mir ist jede zeile zentriert und ein zu großer abstand zwischen den zeilen

hier mal der code

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Swing extends JFrame {
    
	Swing ( String titel ) {
	
	super (titel);
	
	// Behandlung bei Beendung der Anwendung
	
	this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	
	// Design der Benutzeroberfläche
	
	try {
       UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 
    }
    catch(Exception ex) {
       System.err.println("Fehler bei der Gestaltung\n"); 
    }
	
	// Layout des GUI's
	
	setLayout( new GridLayout(4,4) );

    JPanel zelle1 = new JPanel();
    JPanel zelle2 = new JPanel();
    JPanel zelle3 = new JPanel();
    JPanel zelle4 = new JPanel();
    
	// Label
    JLabel text1 =  new JLabel("Text:   ", SwingConstants.LEFT);
    text1.setFont(new Font("Monospaced", Font.PLAIN,12));
    zelle1.add(text1);
	
	// Optionsfelder
    ButtonGroup gruppe = new ButtonGroup();

    JRadioButton opt1 = new JRadioButton ("1",false);
    JRadioButton opt2 = new JRadioButton ("2",false);
    gruppe.add(opt1);
    gruppe.add(opt2);

    zelle1.add(opt1);
    zelle1.add(opt2);
	
	// Label
    JLabel text2 =  new JLabel("Eingabe:   ", SwingConstants.RIGHT );
    text2.setFont(new Font("Monospaced", Font.PLAIN,12));
    zelle2.add(text2);
	
	// Textkomponenten
    JTextField text3 = new JTextField(2);
    text3.setText("");
    zelle2.add(text3);
	
	JButton schalter =  new JButton("Los!");
    zelle4.add(schalter);
	
	// Verzeichnisauswahl
	JFileChooser pfad = new JFileChooser();
	
	// Zellen hinzufügen
	
	add(zelle1);
	add(zelle2);
	add(zelle3);
	add(zelle4);
	
	}

    public static void main ( String[] args ) {
	
	Swing gui = new Swing ("Swing GUI");
	
	gui.pack();
    gui.setSize(640,300);
    gui.setVisible(true);
	
	
	}
}

habe ich vielleicht den falschen layoutmanager gewählt ?
 
Hm, das Verhalten vom Layoutmanager ist ganz normal. Ich kenn diese Probleme auch. Die Standardlayoutmanager zicken bei mir auch immer rum. Ich frag mich wieso sich die Entwickler von Swing hier noch nichts einfallen haben lassen.

Schau dir doch mal den MIG Layoutmanager an. Ich hatte zwar bis jetzt noch keine Zeit den auszuprobieren, aber er scheint mir ganz brauchbar zu sein.

Gruß odigo
 
hmm also der manager sieht aufjedenfall sehr gut aus nur leider bin ich noch anfänger und kriege es nicht mal hin die .jar datei zu entpacken -.-
Code:
 Failed to load Main-Class manifest attribute from
miglayout-3.6-sources.jar
hat jemand noch weitere tipps ?
 
Ähm, du sollst auch das source Jar nicht entpacken (es würde übrigens z.B. mit WinRar gehen). Du musst die anderen Nicht-Source-Jars zum Classpath hinzufügen, dann kannst du die Klassen/Methoden von Mig-Layout benutzen. Schau dir zur Verwendung am besten den "Quick Start Guide" an.

Gruß odigo
 
mal was anderes wo werden eigentlich die ganzen standart java pakete gespeichert wie z.b. java.util ?
dann könnte ich ja eigentlich das miglayout hinzufügen und der compiler sollte dieses dann problemlos finden.
 
Hallo!

Was vielleicht auch eine Möglichkeit wäre, wenn du zwei Panels waagerecht aneinander legst, jeweils mit einer Box (einer Art Layout, siehe hier )mit vertikaler Richtung.
Auf dem linken könntest du dann die Labels adden und auf dem rechten das jeweilige Control.

Gruß
Felix

EDIT:
Mir ist gerad etwas eingefallen...
Jedes deiner Panels hat jeweils auch ein Layout, vielleicht solltest du dir das auch mal anschauen und ggf. ändern :)
 
danke ich werde es mir mal angucken aber trotzdem interessiert mich noch wo ich die java pakete auf meiner festplatte finde :>
wenn ich z.b. nach dem ordner util suche zeigt der mir nur den ordner java an aber da ist nichts :/
 
Die JRE-Klassen liegen nicht frei im Dateisystem, sondern gepackt in der Datei "rt.jar" ("rt" wie "Runtime") im Unterordner "lib" deines JDK-Installationsordners.
Wenn du die Quellen der (nicht-nativen) Java-Standard-Klassen haben willst, musst du die das Source-Package des JDK runterladen. Die Quellen liegen dann im JAR-File "rt-src.jar".
JAR-Dateien kannst du grundsätzlich mit den meisten gängigen Kompressionsprogrammen entpacken (und im Notfall auch mit Bordmitteln des JDK).

mfg, metax.
 
Original von metax.
Die JRE-Klassen liegen nicht frei im Dateisystem, sondern gepackt in der Datei "rt.jar" ("rt" wie "Runtime") im Unterordner "lib" deines JDK-Installationsordners.
Wenn du die Quellen der (nicht-nativen) Java-Standard-Klassen haben willst, musst du die das Source-Package des JDK runterladen. Die Quellen liegen dann im JAR-File "rt-src.jar".
JAR-Dateien kannst du grundsätzlich mit den meisten gängigen Kompressionsprogrammen entpacken (und im Notfall auch mit Bordmitteln des JDK).

mfg, metax.

Es geht ihm glaub ich nicht darum die Sourcen zu den Standard-Java-Klassen zu bekommen. Er will einfach die Mig-Layout Libs im Classpath haben. Da im Classpath die Standard-Libs drin sind würde es reichen den Mig-Layout Lib (das jar-File) in den lib-Ordner der JRE zu kopieren.
Daß er sich das Leben einfacher machen kann wenn er eine IDE benutzt (ich sag jetzt nicht Eclipse um kein geflame auszulösen :D) hab ich ihm schon gesagt.
Achja, und nochmal, versuch nicht das Mig-Layout-Jar zu entpacken. Das musst du nicht und macht keinen Sinn. Lern erstmal die Basics von Java.

Gruß odigo
 
mit netbeans ist das ja kein problem eine externe lib einzubinden , so klappt das ja auch mit dem miglayout :>
nur ich wollte halt wie odigo es auch erkannt hat die entpackte miglayout.jar den standard paketen von java hinzufügen ...
ich habe die rt.jar gefunden und dann den miglayout ordner samt den .class dateien hinzugefügt, nur leider bringt das auch nichts -.-
(die ordnerstruktur stimmte mit meiner import anweisung überein).
naja ich lasse das jetzt am besten und nutze weiterhin netbeans :x
 
Original von shinobo
...wie odigo es auch erkannt hat die entpackte miglayout.jar den standard paketen von java hinzufügen ...
Das hab ich nie gesagt. Nimm das Jar so wie es ist und kopiers ins lib-Verzeichnis. Fertig. Nix entpacken! Sollte imho gehen.

Gruß odigo

Edit: Ich muss mich korrigieren. Der richtige Speicherort für das Jar wäre lib\ext im JRE. Siehe hier.
 
Zurück
Oben