Swing JTable zeigt nichts

  • Themenstarter Themenstarter Xyz1
  • Beginndatum Beginndatum
X

Xyz1

Gast
Java:
public class App {

	DefaultTableModel dtm1 = new DefaultTableModel();

	App() {
		JFrame f1 = new JFrame("Überwachung 1");
		// dtm1.setColumnIdentifiers(new String[] { "Name", "Wert" });
		JTable t1 = new JTable(dtm1);
		f1.add(new JScrollPane(t1));
		f1.setSize(400, 400);
		f1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		f1.setVisible(true);

		new Thread(() -> {
			try {
				while (f1.isVisible()) {
					SwingUtilities.invokeLater(() -> {
						for (int i = dtm1.getRowCount() - 1; i >= 0; i--) {
							dtm1.removeRow(i);
						}
						dtm1.addRow(new String[] { "hier", "steht" });
						dtm1.addRow(new String[] { "wichtige", "Sachen..." });
						dtm1.fireTableDataChanged();
					});
					Thread.sleep(500);
				}
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}).start();
	}

}

Wenn ich die 3. Zeile nicht ein-kommentiere dann zeigt die JTable nichts an - wieso?
 
Java:
public class App {

    DefaultTableModel dtm1 = new DefaultTableModel();

    App() {
        JFrame f1 = new JFrame("Überwachung 1");
        // dtm1.setColumnIdentifiers(new String[] { "Name", "Wert" });
        JTable t1 = new JTable(dtm1);
        f1.add(new JScrollPane(t1));
        f1.setSize(400, 400);
        f1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        f1.setVisible(true);

        new Thread(() -> {
            try {
                while (f1.isVisible()) {
                    SwingUtilities.invokeLater(() -> {
                        for (int i = dtm1.getRowCount() - 1; i >= 0; i--) {
                            dtm1.removeRow(i);
                        }
                        dtm1.addRow(new String[] { "hier", "steht" });
                        dtm1.addRow(new String[] { "wichtige", "Sachen..." });
                        dtm1.fireTableDataChanged();
                    });
                    Thread.sleep(500);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }).start();
    }

}

Wenn ich die 3. Zeile nicht ein-kommentiere dann zeigt die JTable nichts an - wieso?
du meinst die Zeile:
Code:
App() {
Okay lass uns mal zusammen überlegen, woran könnte das wohl liegen, dass dein Quelltext nicht kompiliert wird.
Oder meintest du nicht eher die 4te Zeile? Also
Code:
// dtm1.setColumnIdentifiers(new String[] { "Name", "Wert" });
Okay lass uns mal einen Blick in die Doku werfen:
https://docs.oracle.com/javase/7/docs/api/javax/swing/table/DefaultTableModel.html
Dann kannst du dir es selbst erklären - so hoffe ich zumindest.
 
offenbar? Du meinst offensichtlich.

Die Zeile sagt dem Programm, wieviele Spalten die Tabelle haben wird.
Wie ich sehe, gibt es auch eine Methode namens setColumnCount
 

Neue Themen


Zurück
Oben