Wanki Geschrieben 30. Juni 2006 Geschrieben 30. Juni 2006 hallo zusammen, Ich versuche zur zeit mir Java beizubringen(hab nur in c++ ahnung) und bin jetzt auf folgendes problem gestoßen: So sieht das Programm jetzt aus: Und ich will aber, dass "Test" in der Mitte steht, darunter ein weiteres Labelfenster, indem später Daten ausgegeben werden, dann Button 1 und 2 unter dem Label, Button 3 in der Mitte unter den beiden anderen Buttons,so wie jetzt auch nur gleich groß, und Button 4 unten rechts..... Mein Quellcode sieht zur zeit so aus: Test.java: import java.awt.*; public class Test extends Frame { private GridLayout myGridLayout = new GridLayout(2,0); private MyWindowListener myWindowListener = new MyWindowListener(); private MyActionListener myActionListener = new MyActionListener(); private Button btn1 = new Button("1"); private Button btn2 = new Button("2"); private Button btn3 = new Button("3"); private Button btn4 = new Button("4"); private Panel pnlNorth = new Panel(new BorderLayout()); private Panel pnlCenter = new Panel(new GridLayout(2,0)); private Panel pnlSouth = new Panel(new FlowLayout(FlowLayout.RIGHT)); private Label lblUeberschrift = new Label("Test"); private Label lbl = new Label(""); public Test() { this.setTitle("Test"); this.lblUeberschrift.setFont(new Font("",Font.BOLD,16)); this.pnlNorth.add(lblUeberschrift); this.setSize(300,300); this.pnlNorth.add(btn1, BorderLayout.WEST); this.pnlNorth.add(btn2, BorderLayout.EAST); this.pnlCenter.add(btn3); this.pnlSouth.add(btn4); this.add(pnlNorth, BorderLayout.NORTH); this.add(pnlCenter, BorderLayout.CENTER); this.add(pnlSouth, BorderLayout.SOUTH); this.show(); this.addWindowListener(this.myWindowListener); this.btn1.addActionListener(this.myActionListener); this.btn2.addActionListener(this.myActionListener); this.btn3.addActionListener(this.myActionListener); this.btn4.addActionListener(this.myActionListener); } public static void main(String args[]) { Test f = new Test(); } } MyWindowListener: import java.awt.event.*; public class MyWindowListener extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } MyActionListener: import java.awt.event.*; public class MyActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { int wert = Integer.parseInt(e.getActionCommand()); switch(wert) { case 1: System.exit(0); case 2: System.out.println("Button 2"); break; case 3: System.out.println("Button 3"); break; case 4: System.out.println("Button 4"); break; } } } Danke im voraus für eure Hilfe! Mfg Wanki Zitieren
perdian Geschrieben 30. Juni 2006 Geschrieben 30. Juni 2006 Hast du dich denn bereits mit dem Konzept eines LayoutManagers befasst? Wenn nein: http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html Gerade für ein Layout wie von dir gewünscht bietet sich dann eigentlch an: http://www.jgoodies.com/freeware/forms/ Zitieren
Wanki Geschrieben 30. Juni 2006 Autor Geschrieben 30. Juni 2006 ja habe ich! Wie man im Quellcode erkennen kann habe ich es auch schon mit Borderlayout,FlowLayout und Gridlayout probiert. Zitieren
perdian Geschrieben 30. Juni 2006 Geschrieben 30. Juni 2006 Dann mal dochmal dein Ziellayout auf einem Blatt Papier auf, und versuch dir klarzumachen, wo die groben Bereiche sind, die du über verschiedene Panels mit verschiedenen Layouts abbilden willst. Wenn du dann noch genauere Hilfe brauchst poste hier mal diesen Entwurf - deine Beschreibung ist da nämlich ein wenig ungenau bzw. nicht besonders klar. Zitieren
tkdmatze Geschrieben 3. Juli 2006 Geschrieben 3. Juli 2006 Hast du dich denn bereits mit dem Konzept eines LayoutManagers befasst? zur Not gibts ja noch null mit hilfe von GUI-Editoren kann man dann ein Layout erstellen mit absoluten Positionen, allerdings reagieren die nicht mehr dynamisch auf veränderungen der fenstergrösse Zitieren
perdian Geschrieben 3. Juli 2006 Geschrieben 3. Juli 2006 zur Not gibts ja noch null Null-Layout als Empfehlung? Dafür kann es nur eins geben: :-) allerdings reagieren die nicht mehr dynamisch auf veränderungen der fenstergrösseNicht nur auf Veränderungen der Fenstergröße. Wenn der User eine andere Auflösung eingestellt hat oder auch nur andere Systemschriftarten verwendet kann es schon zu Problemen kommen. Oder irgendwer kommt auf die Idee ein neues LaF verwenden zu wollen, wo die Komponenten plötzlich ganz andere Proportionen einnehmen... oder, oder, oder... mögliche Fehlerquellen ließen sich noch ein paar mehr finden. Darum: Finger weg! Zitieren
tkdmatze Geschrieben 3. Juli 2006 Geschrieben 3. Juli 2006 lesen grosser zur NOT *püh* manche lesen nur was sie wollen Zitieren
perdian Geschrieben 3. Juli 2006 Geschrieben 3. Juli 2006 manche lesen nur was sie wollenEben! Wenn jemand sich nicht mit den Konzepten hinter der eigentlichen Logik beschäftigen möchte, dann wird er imemr zur - scheinbar - einfachsten Lösung greifen. In diesem Fall eben einem null Layout. Die Tatsache, dass du "zur Not" geschrieben hast wird da wenig ins Gewicht fallen, weil für den Betreffenden sozusagen schon längst der Notstand ausgebrochen ist. Von daher: Auch nicht zur Not! Ich habe bisher noch keinen Anwendungsfall gesehen, wo ein Null Layout wirklich sinnvoll eingesetzt worden ist bzw. sinnvoll hätte eingesetzt werden können. Zitieren
Wanki Geschrieben 6. Juli 2006 Autor Geschrieben 6. Juli 2006 So hallo.... So sollte das eigentlich aussehen..... ich bekomms aber nicht so hin Zitieren
perdian Geschrieben 6. Juli 2006 Geschrieben 6. Juli 2006 Ungetestet aber ziemlich sicher: FormLayout layout = new FormLayout( /* COLS */ "fill:200px, fill:200px, fill:200px", /* ROWS */ "fill:50px, 8dlu, fill:pref, 8dlu, fill:pref, fill:0px:grow, fill:pref" ); PanelBuilder builder = new PanelBuilder(layout); builder.add(label, cc.xywh(1, 1, 3, 1)): builder.add(button1, cc.xywh(1, 3, 1, 1)): builder.add(button2, cc.xywh(3, 3, 1, 1)): builder.add(button3, cc.xywh(2, 5, 1, 1)): builder.add(button4, cc.xywh(3, 7, 1, 1)): JPanel resultPanel = builder.getPanel(); Zitieren
Wanki Geschrieben 13. Juli 2006 Autor Geschrieben 13. Juli 2006 Und wo füg ich das jetzt ein??? Also in welchen Teil vom Quelltext....... hab das mal eingefügt da kommen dann aber zig fehler also hab ichs wohl falsch eingefügt..... Zitieren
perdian Geschrieben 13. Juli 2006 Geschrieben 13. Juli 2006 Und wo füg ich das jetzt ein?Na da, wo das Layout des Panels erstellt werden soll. hab das mal eingefügt da kommen dann aber zig fehlerWas mich nicht wirklich wundert. Wie gesagt: Ungetestet und mal eben auf die schnelle Hingeschrieben. Das ganze soll nicht als fertige Lösung dienen, sondern als Lösungsansatz anhand dessen du dir dein eigenes Layout zusammenstellen kannst. Und solange du nicht den Wortlaut der Fehlermeldungen postest kann dir sowieso niemand weiterhelfen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.