Ich will diese Komponente übereinander positionieren. Wie kann ich das machen? Mit Grid klappt das irgendwie nicht, obwohl ich 4 Zeilen und 1 Spalte eingegeben habe, sieht das wie 2 Zeilen und 2 Spalten aus.
[label ][field ]
[button][label2]
Ich will aber so haben:
[label ]
[field ]
[button]
[label2]
Oder gibt es vieleicht besseren LayoutManager der so was machen kann?
GridBagLayout find ich bei dem Bsp wie mit Kanonen auf Spatzen schiessen… TableLayout ist intuitiver, aber fuer ein einfaches an einer Achse ausgerichtetes Layout wuerde ich immer noch das einfach BoxLayout nehmen…
wobei ich nicht versteh warum es bei dir nicht klappt… das hier klappt
public class Test extends JFrame{
public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
Container c = getContentPane();
c.setLayout(new GridLayout(4,1));
c.add(new JLabel("Hallo"));
c.add(new JButton("Why"));
c.add(new JTextField());
c.add(new JLabel("Alwazys"));
setVisible(true);
}
public static void main(String[] args) throws Exception {
new Test();
}
}
also soweit ich das beurteilen kann ist das TableLayout genauso wie das GridBagLayout nur das man dafür externe Libs braucht, wobei ich zugeben muss das ich diesen Eindruck nur aus Blicken in fremden Code hab ich selbst hab das noch nie benutzt.
Also ich fand das TableLayout viel verwirrender. Und der Herr swerflash hat 100% noch nicht mit einer externen Lib gearbeitet Ihr dürft nun raten was seine nächste Frage sein wird
Gridbag rulez per default. In firmen projekten hauen sie dir meist irgendwelche OpenSource jar um die ohren. Daher würde ich direkt das GBL verstehen und anwenden lernen.
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at calc.Taschenrechner.myComponents(Taschenrechner.java:34)
at calc.Taschenrechner.<init>(Taschenrechner.java:20)
at calc.Main.main(Main.java:6)
Ich wollte einen Taschenrechner bauen und kriege diese Exception sobald ich versuche das Programm auszuführen. Was habe ich falsch gemacht? Hier ist mein Code.