Mein Fensteraufbau habe ich mittels GridBagLayout vorgenommen. Das Fenster besteht aus 4 Spalten und n-Zeilen. Die Anzeige der Textzeilen, die sich in einer Tabelle befinden, erfolgt einwandfrei.
Probleme gibt es mit der Anzeige meiner vier Bilder, die sich in einer anderen Tabelle befinden. Obwohl ich explizit die Positionen der Bilder mittels
gbc.gridx = 0; und gbc.gridy = 0; bzw. gbc.gridx = 1; und gbc.gridy = 0; etc. angebe,
werden sie immer auf Zeile 0 Spalte 0 gespeichert und überlagern somit das zuvor geladene Bild.
Frage eines Java-Anfängers:
Welche Angabe muss ich wie und wo machen, damit die vier Bilder in den Spalten 0,1,2,3, der Zeile 0 dargestellt werden?
Probleme gibt es mit der Anzeige meiner vier Bilder, die sich in einer anderen Tabelle befinden. Obwohl ich explizit die Positionen der Bilder mittels
gbc.gridx = 0; und gbc.gridy = 0; bzw. gbc.gridx = 1; und gbc.gridy = 0; etc. angebe,
werden sie immer auf Zeile 0 Spalte 0 gespeichert und überlagern somit das zuvor geladene Bild.
Java:
public P09_06_GridBagLayout_TEST_02() {
init();
}
private void init() {
JPanel panel = new JPanel();
createLayout(panel);
JFrame frame = new JFrame();
frame.add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setTitle("VERSUCH_02 - GridBagLayout");
frame.setVisible(true);
}
private void createLayout(JPanel panel) {
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
gbl.setConstraints(panel, gbc);
panel.setLayout(gbl);
//------------------------------------------------------------------------
JLabel label = new JLabel();
ImageIcon icon = new ImageIcon(BilderArray[0]);
label.setIcon(icon);
// panel.getContentPanel().add(label);
// gbc.weightx = 1;
gbc.gridx = 0;
gbc.gridy = 0; // ZEILE 0 / SPALTE 0 / 1. TABELLEN-BILD
panel.add(label);
// ZEILE 1 / anstelle ZWEITE SPALTE, wird erstes Bild überlagert ???????:
ImageIcon icon1 = new ImageIcon(BilderArray[1]);
label.setIcon(icon1);
// panel.getContentPanel().add(label);
// gbc.weightx = 1;
gbc.gridx = 0;
gbc.gridy = 1; // ZEILE 0 / SPALTE 0 ? 1. TABELLEN-BILD DURCH 2. ÜBERLAGERT
panel.add(label);
//------------------------------------------------------------------------
JLabel l = null;
// ZEILE 2 / ERSTE SPALTE / ERSTES TEXT:
gbc.gridx = 0;
gbc.gridy = 3;
// panel.add(createLabel(l, Color.WHITE, "ERSTES TEXT"), gbc);
panel.add(createLabel(l, Color.WHITE, (Tab02[01][02])), gbc);
// ZEILE 2 / ZWEITE SPALTE / ZWEITER TEXT:
gbc.gridx = 1;
gbc.gridy = 3;
// panel.add(createLabel(l, Color.lightGray, "ZWEITER TEXT"), gbc);
panel.add(createLabel(l, Color.lightGray, (Tab02[01][03])), gbc);
.....etc....
Welche Angabe muss ich wie und wo machen, damit die vier Bilder in den Spalten 0,1,2,3, der Zeile 0 dargestellt werden?