Hallo,
ich hab gerade begonnen mit GUI Programmierung und will grad ziemlich am Verzweifeln, da ich nichtmal meine Einfachen Ideen hinbekomme.
Ich will mein Frame so unterteilen, dass ich von der Höhe ca. 20-30% oben für einen eigenen Teil nehme (für ein Suchfeld mit Buttons zum Suchen und Optionen) und den unteren Teil zur Anzeige.
D.h. ich hab einen JPanel für den oberen Teil und einen JPanel für den unteren Teil.
Für das Frame runterherum brauche ich jetzt natürlich irgend einen Layout Manager.
Ich hab mir jetzt schon einiges Durchgelesen, bin aber eher mehr Verwirrt, als das ichs verstanden habe....
Soweit ich das Verstanden habe, sollte ich für den Frame runterherum ein GridBagLayout nehmen.
Und für den oberenTeil nehme ich dann einfach ein Flow Layout damit ich die Dinger nebeneinander anordne.
Das Problem ist aber, dass ich beim GridBagLayout keine Höhen oder so angeben kann.
Wenn ich z.b. als Constrains
obererTeilConstrains.gridheight = 2;
angebe, dann muss ich beim unteren Teil zwar gridy=2 nehmen damit es sich nicht überschneidet, aber insgesamt sind sie trotzdem gleich Hoch.
Und wenn ich irgendwas mit .ipady nehme, dann wird der obere Teil zwar größer, aber ich benutze für den Unteren Teil nie den gesamten Platz...... Also es pickt trotzdem alles oben.
edit:
Kann mir jemand vll. kurz einen Code zeigen, wie ich es schaffe, z.b. in den oberen 30% des Fensters 3 Labens nebeneinander anzuordnen.
Und darunter auf den adnerenn 70% der Höhe dann einen großen Button, der die ganze Breite + verbleibende Höhe einnimmt? Ist zwar so Schwachsinnige, aber nur damit ich sehe, wie man soetwas anordner..
edit2:
Hier vll. noch der Code mit dem ich gerade herumspiele.
Irgendwie ist der überhaupt nicht dynamisch, wenn ich die Fenstergröße ändere, bleiben die Buttons gleich groß usw.
Wäre cool wenn mir jemand zeigt, wie ich die ersten 4 Buttons in die 1te Zeile bekomme und den 5ten Button in die 2te, aber so, dass der 5te Button die gesamte Größe einnimmt und dabei 70% der Höhe hat und die ersten 4 Buttons die restlichen 30%.
ich hab gerade begonnen mit GUI Programmierung und will grad ziemlich am Verzweifeln, da ich nichtmal meine Einfachen Ideen hinbekomme.
Ich will mein Frame so unterteilen, dass ich von der Höhe ca. 20-30% oben für einen eigenen Teil nehme (für ein Suchfeld mit Buttons zum Suchen und Optionen) und den unteren Teil zur Anzeige.
D.h. ich hab einen JPanel für den oberen Teil und einen JPanel für den unteren Teil.
Für das Frame runterherum brauche ich jetzt natürlich irgend einen Layout Manager.
Ich hab mir jetzt schon einiges Durchgelesen, bin aber eher mehr Verwirrt, als das ichs verstanden habe....
Soweit ich das Verstanden habe, sollte ich für den Frame runterherum ein GridBagLayout nehmen.
Und für den oberenTeil nehme ich dann einfach ein Flow Layout damit ich die Dinger nebeneinander anordne.
Das Problem ist aber, dass ich beim GridBagLayout keine Höhen oder so angeben kann.
Wenn ich z.b. als Constrains
obererTeilConstrains.gridheight = 2;
angebe, dann muss ich beim unteren Teil zwar gridy=2 nehmen damit es sich nicht überschneidet, aber insgesamt sind sie trotzdem gleich Hoch.
Und wenn ich irgendwas mit .ipady nehme, dann wird der obere Teil zwar größer, aber ich benutze für den Unteren Teil nie den gesamten Platz...... Also es pickt trotzdem alles oben.
edit:
Kann mir jemand vll. kurz einen Code zeigen, wie ich es schaffe, z.b. in den oberen 30% des Fensters 3 Labens nebeneinander anzuordnen.
Und darunter auf den adnerenn 70% der Höhe dann einen großen Button, der die ganze Breite + verbleibende Höhe einnimmt? Ist zwar so Schwachsinnige, aber nur damit ich sehe, wie man soetwas anordner..
edit2:
Hier vll. noch der Code mit dem ich gerade herumspiele.
Irgendwie ist der überhaupt nicht dynamisch, wenn ich die Fenstergröße ändere, bleiben die Buttons gleich groß usw.
Wäre cool wenn mir jemand zeigt, wie ich die ersten 4 Buttons in die 1te Zeile bekomme und den 5ten Button in die 2te, aber so, dass der 5te Button die gesamte Größe einnimmt und dabei 70% der Höhe hat und die ersten 4 Buttons die restlichen 30%.
Java:
import java.awt.*;
import javax.swing.*;
public class Demo {
public static void main( String[] args ) throws Exception{
JFrame frame = new JFrame("Test");
frame.setSize(400,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new GridBagLayout());
frame.add(panel, BorderLayout.NORTH);
GridBagConstraints c = new GridBagConstraints();
JButton label1 = new JButton("Test1");
c.gridx = 0;
c.gridy = 0;
c.insets = new Insets(10,10,10,10);
c.ipady = 20;
panel.add(label1,c);
JButton label2 = new JButton("Test2");
c.gridx = 0;
c.gridy = 2;
c.ipady = 1;
c.gridheight = 1;
panel.add(label2,c);
JButton label3 = new JButton("Test3");
c.gridx = 0;
c.gridy = 3;
panel.add(label3,c);
JButton label4 = new JButton("Test4");
c.gridx = 0;
c.gridy = 4;
panel.add(label4,c);
JButton label5 = new JButton("Test5");
c.gridx = 0;
c.gridy = 5;
panel.add(label5,c);
}
}
Zuletzt bearbeitet: