Hallo,
Bisher habe ich immer alles mittels setLayout(null) und dann setBounds(...) gelöst.
Jetzt wollte ich davon mal abkommen, denn es ist ja schon ziemlich amateurhaft und nicht
gerade gut änderbar und lesbar.
Das Problem ist: Egal welches Layout ich versuch (ich hab alle durchprobiert soweit ich weiss, also
Flow, Border, Box, Card, ....), irgendwie komm ich null damit klar...
Am besten ich schilder euch mein Verständnisproblem an folgendem, ausführbaren Beispiel:
Startet das Programm doch mal bitte..
Ich hab dazu 3 Fragen:
1) Was soll dieser kleine Streifen oben, wieso fängt die Liste nicht gleich an sondern mit 5 px Abstand?
2) Wieso geht die Liste bis ganz unten zum Fenster, obwohl ich als y-Size die Fenster-Size MINUS 40 px genommen hab? Das sind nie und nimmer 40 px...
3) Die ersten 2 Fragen haben vllt was mit der Titelleiste zu tun (wenn ja: woher weiss ich, wie hoch die ist?), aber warum denn bitte stimmt das auch in der Breite nicht ?? Ihr seht die 2 Listen-Einträge, sie sind leicht abgeschnitten.
Solche Probleme hab ich mit jedem Layout bisher gehabt, und ich weiss nicht wie ich das hinkriegen soll,
weil ich die Logik nicht verstehe. Ich verstehe nicht, wieso das jetzt der Höhe und Breite nach um so und so viel
verschoben ist..
Dankeschön
Bisher habe ich immer alles mittels setLayout(null) und dann setBounds(...) gelöst.
Jetzt wollte ich davon mal abkommen, denn es ist ja schon ziemlich amateurhaft und nicht
gerade gut änderbar und lesbar.
Das Problem ist: Egal welches Layout ich versuch (ich hab alle durchprobiert soweit ich weiss, also
Flow, Border, Box, Card, ....), irgendwie komm ich null damit klar...
Am besten ich schilder euch mein Verständnisproblem an folgendem, ausführbaren Beispiel:
Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JList;
public class LayoutDemo {
static final int WINDOW_X_SIZE = 250;
static final int WINDOW_Y_SIZE = 200;
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(WINDOW_X_SIZE,WINDOW_Y_SIZE));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setLayout(new FlowLayout());
String[] model = {"eins","zwei"};
JList liste = new JList(model);
liste.setPreferredSize(new Dimension(WINDOW_X_SIZE, WINDOW_Y_SIZE-40));
liste.setBackground(Color.green);
frame.add(liste);
frame.setVisible(true);
}
}
Startet das Programm doch mal bitte..
Ich hab dazu 3 Fragen:
1) Was soll dieser kleine Streifen oben, wieso fängt die Liste nicht gleich an sondern mit 5 px Abstand?
2) Wieso geht die Liste bis ganz unten zum Fenster, obwohl ich als y-Size die Fenster-Size MINUS 40 px genommen hab? Das sind nie und nimmer 40 px...
3) Die ersten 2 Fragen haben vllt was mit der Titelleiste zu tun (wenn ja: woher weiss ich, wie hoch die ist?), aber warum denn bitte stimmt das auch in der Breite nicht ?? Ihr seht die 2 Listen-Einträge, sie sind leicht abgeschnitten.
Solche Probleme hab ich mit jedem Layout bisher gehabt, und ich weiss nicht wie ich das hinkriegen soll,
weil ich die Logik nicht verstehe. Ich verstehe nicht, wieso das jetzt der Höhe und Breite nach um so und so viel
verschoben ist..
Dankeschön