Layouts umschreiben ?

mxm_d1

Mitglied
Hallo,

Ich habe ein Beispiel Programm bei dem eine GUI mithilfe eines Gridlayouts erstellt wurde.
Meine Frage wäre, kann ich diese GUI auf eine einfache weise auf ein Border oder flow laylout umschreiben oder fängt man
dann eher von neu an ? Leider habe ich nur mit dem Gridlaylout Erfahrung.

public class Gui extends JFrame {


JButton berechnen, abbruch;
JTextField eingabe;

public Gui() {

setLayout(new GridLayout(3, 1));
setTitle("Größen Rechner");


// Zeile 1

JPanel jp_z1 = new JPanel();

JLabel lb_Ueberschrift = new JLabel("Berechnen sie ihre Größe");
lb_Ueberschrift.setFont(new Font("COURIER", Font.BOLD + Font.ITALIC, 30));
jp_z1.add(lb_Ueberschrift);
add(jp_z1);


// Zeile 2

JPanel jp_z2 = new JPanel();

JLabel lb_info = new JLabel("Geben sie ihr Größe in cm an: ");
jp_z2.add(lb_info);


eingabe = new JTextField(10);
jp_z2.add(eingabe);


eingabe.addActionListener(new f_Berechnen());

add(jp_z2);


//Zeile 3

JPanel jp_z3 = new JPanel();

berechnen = new JButton("Berechnen");
jp_z3.add(berechnen);
berechnen.setBackground(Color.green);


abbruch = new JButton("Abbrechen");
jp_z3.add(abbruch);

abbruch.addActionListener(new f_abbrechen());
berechnen.addActionListener(new f_Berechnen());
add(jp_z3);

pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);


}
 

mihe7

Top Contributor
Bitte Code in Code-Tags posten (</> im Editor oben links).

Meine Frage wäre, kann ich diese GUI auf eine einfache weise auf ein Border oder flow laylout umschreiben oder fängt man
dann eher von neu an ?
Das kann man pauschal nicht sagen, zumal Deine jp_xx-Panels sowieso FlowLayout verwenden.

Wenn ich mir den Code ansehe, dann könnte ich mir vorstellen, dass Dich die dynamischen Zeilenhöhen stören. Das könntest Du z. B. beheben, indem Du die jp_xx-Panels nicht dem JFrame sondern einem separaten JPanel hinzufügst, das das angegebene GridLayout verwendet, und dieses Panel dann im Norden oder Süden eines BorderLayouts im JFrame verwendest.

Java:
JPanel content = new JPanel(new GridLayout(3,1));
// ...
content.add(jp_z1);
content.add(jp_z2);
content.add(jp_z3);

add(content, BorderLayout.NORTH);
 

mxm_d1

Mitglied
Bitte Code in Code-Tags posten (</> im Editor oben links).


Das kann man pauschal nicht sagen, zumal Deine jp_xx-Panels sowieso FlowLayout verwenden.

Wenn ich mir den Code ansehe, dann könnte ich mir vorstellen, dass Dich die dynamischen Zeilenhöhen stören. Das könntest Du z. B. beheben, indem Du die jp_xx-Panels nicht dem JFrame sondern einem separaten JPanel hinzufügst, das das angegebene GridLayout verwendet, und dieses Panel dann im Norden oder Süden eines BorderLayouts im JFrame verwendest.

Java:
JPanel content = new JPanel(new GridLayout(3,1));
// ...
content.add(jp_z1);
content.add(jp_z2);
content.add(jp_z3);

add(content, BorderLayout.NORTH);
ansich stört mich nichts, muss für Prüfungssituationen auch mit den anderen layouts klar kommen, bekomme aber immer nur das Grid layout ordentlich hin :)
 

mihe7

Top Contributor
ansich stört mich nichts, muss für Prüfungssituationen auch mit den anderen layouts klar kommen, bekomme aber immer nur das Grid layout ordentlich hin :)
Ah, ok.

"Ordentlich" hängt natürlich damit zusammen, wie das Ergebnis aussehen soll. Für ein typisches Formular (unterschiedlich große Spalten, Labels und Eingaben auf der gleichen Höhe) sind BorderLayout, GridLayout und FlowLayout sowieso ungeeignet (dafür verwendet man eher GridBagLayout oder GroupLayout).
 

mxm_d1

Mitglied
Ah, ok.

"Ordentlich" hängt natürlich damit zusammen, wie das Ergebnis aussehen soll. Für ein typisches Formular (unterschiedlich große Spalten, Labels und Eingaben auf der gleichen Höhe) sind BorderLayout, GridLayout und FlowLayout sowieso ungeeignet (dafür verwendet man eher GridBagLayout oder GroupLayout).
Kla komme ich mit dem Grid layout wie gesagt super, die gui die wir umsetzen müssen ist nicht so kompliziert. wüsste aber garnicht
wie ich bei den anderen Layouts anfangen sollte, kam etwas überraschend das wir eventuell kein Grid layout benutzen dürfen :)
 

mihe7

Top Contributor
kam etwas überraschend das wir eventuell kein Grid layout benutzen dürfen :)
Man will es halt spannend machen :p

GridLayout hat halt einfach das Problem, dass die Zellen gleich groß sind, das sieht dann oft fürchterlich aus. Kann mir jetzt allerdings nicht vorstellen, dass Ihr Euch in der Klausur mit GridBagLayout rumschlagen müsst. Selbst GroupLayout ist kaum vorstellbar. Eventuell noch BoxLayout; das käme im Zusammenhang mit Box dem GridLayout schon recht nahe.
 

Neumi5694

Top Contributor
Von GroupLayout rate ich ganz ganz dringend ab, manuell kann das eh keiner programmieren. Für Gridbaglayout würde ich einen Editor empfehlen, bei der Klausur kommt der aber sicher nicht zum Einsatz. Manuell braucht es da schon einiges an Vorstellungsvermögen.

Ich mach so gut wie alles mit einer Mischung aus Border, Gridbag und Flow oder Box (für vertikale Anordnung mit Links-Ausrichtung). Hin und wieder kommt auch mal Grid zum Einsatz (genau dann, wenn die Zellen alle gleich groß sein müssen).

Es gibt dann auch noch das Null- bzw. Absolute Layout, in dem man Positionen und Größen selbst bestimmt, aber die sind eher was für Hardcore-Programmierer, die auch IDEs oder Packages verweigern (*zwinker zwinker*).
 

mxm_d1

Mitglied
Man will es halt spannend machen :p

GridLayout hat halt einfach das Problem, dass die Zellen gleich groß sind, das sieht dann oft fürchterlich aus. Kann mir jetzt allerdings nicht vorstellen, dass Ihr Euch in der Klausur mit GridBagLayout rumschlagen müsst. Selbst GroupLayout ist kaum vorstellbar. Eventuell noch BoxLayout; das käme im Zusammenhang mit Box dem GridLayout schon recht nahe.
Von GroupLayout rate ich ganz ganz dringend ab, manuell kann das eh keiner programmieren. Für Gridbaglayout würde ich einen Editor empfehlen, bei der Klausur kommt der aber sicher nicht zum Einsatz. Manuell braucht es da schon einiges an Vorstellungsvermögen.

Ich mach so gut wie alles mit einer Mischung aus Border, Gridbag und Flow oder Box (für vertikale Anordnung mit Links-Ausrichtung). Hin und wieder kommt auch mal Grid zum Einsatz (genau dann, wenn die Zellen alle gleich groß sein müssen).

Es gibt dann auch noch das Null- bzw. Absolute Layout, in dem man Positionen und Größen selbst bestimmt, aber die sind eher was für Hardcore-Programmierer, die auch IDEs oder Packages verweigern (*zwinker zwinker*).
Naja also es könnte ein borderlayout, grid oder flow layout kommen. wie kann ich mein grid layout zu einen der anderen beiden umschreiben ?
finde das Gridlayout immer sehr übersichtlich
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G GUI Layouts Java Basics - Anfänger-Themen 4
J Layouts Java Basics - Anfänger-Themen 3
F Frage zu Layouts Java Basics - Anfänger-Themen 4
A Bild ändert Größe des Gridbag Layouts Java Basics - Anfänger-Themen 4
T Swing Layouts Java Basics - Anfänger-Themen 5
J Nested Layouts - Parameterübergabe bei ActionListener Java Basics - Anfänger-Themen 2
? Layouts Mischen Java Basics - Anfänger-Themen 5
R resizen eines NULL-Layouts einschränken Java Basics - Anfänger-Themen 4
S Swing: mehrere Layouts verwenden Java Basics - Anfänger-Themen 19
G Layouts verschachteln Java Basics - Anfänger-Themen 17
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
Zeppi Integer umschreiben Java Basics - Anfänger-Themen 5
Sajeel Chattha Dieses Programm umschreiben Java Basics - Anfänger-Themen 5
A Code umschreiben Java Basics - Anfänger-Themen 6
G Methode Rekursiv umschreiben Java Basics - Anfänger-Themen 8
C else in if umschreiben Java Basics - Anfänger-Themen 2
U Umschreiben ohne main methode ;-) Java Basics - Anfänger-Themen 8
D Von For in While umschreiben Java Basics - Anfänger-Themen 13
A Fehler beim Umschreiben in Array Java Basics - Anfänger-Themen 6
T Umschreiben von switch in if else und umgekehrt Java Basics - Anfänger-Themen 9
M Problem mit Jframe nach JApplet umschreiben Java Basics - Anfänger-Themen 2
3 Eine HTML Datei in eine Java Datei umschreiben Java Basics - Anfänger-Themen 23
B clone() und casts umschreiben Java Basics - Anfänger-Themen 4
S Wie umschreiben ? Java Basics - Anfänger-Themen 2
S Applet in Applikation umschreiben? Java Basics - Anfänger-Themen 2
G in compareTo umschreiben Java Basics - Anfänger-Themen 4
ff int in byte[] umschreiben Java Basics - Anfänger-Themen 12
B Schleife in andere Schleife umschreiben Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben