Veröffentlicht 5. März 200619 j hi, folgendes Problem: Ich habe ein JTable in einem JScrollPane in einem JInternalFrame unsw. In dem JTable sollen Daten die über eine Socket-Verbindung kommen angezeigt werden. Alle Daten werden in einen Vector eingetragen der als Grundlage für meine Tablemodel-Klasse dient. Problem: die tabelle aktualisiert sich nicht, wenn neue Daten ankommen. ich habe bisher table.repaint(); tablemodel.fireTableDataChanged() Scrollpane.setviewportview() versucht...kein Erfolg. Ironischerweise, gehe ich auf ein anderes jInternalframe und zurück, wird sie geupdated. verändere ich per Maus die breite einer Spalte, wird auch dann die tabelle aktualisiert. ideen ?
5. März 200619 j Eigentlich sollte ein Update des Models reichen, aber probier doch mal die Reihenfolge zu vertauschen: tablemodel.fireTableDataChanged() table.repaint();
5. März 200619 j ok, ich ziehe den Kopf ein, irgendwo fehlte ein Aufruf meiner redraw-Methode. hat sich erledigt mal eine zusätzliche Frage: wie stelle ich die breite von Spalten ein ? danke
6. März 200619 j mal eine zusätzliche Frage: wie stelle ich die breite von Spalten ein ? table.getColumnModel().getColumn(foo).setMaxWidth(bar);
6. März 200619 j gut, nächster Schritt. ich will einen Zeileumbruch ermöglichen. Soweit nachgelesen soll das mit nem eigenen CellRenderer gehen, der von z.B. JTextArea erbt. private class MultiLineCellRenderer extends JTextArea implements TableCellRenderer { /** * */ private static final long serialVersionUID = 1L; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { System.out.println("rendering"); this.setLineWrap(true); this.setForeground(Color.RED); this.setBackground(Color.BLACK); this.setText(value.toString()); return this; } } und MultiLineCellRenderer ren = new MultiLineCellRenderer(); this.mTextTable. setDefaultRenderer ( String.class, ren ); wo ist der fehler ? ^^ es funktioniert jedenfalls nicht. den Renderer weise ich beim initialisieren der GUI zu.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.