JTable - TableModel

Status
Nicht offen für weitere Antworten.

redbomber

Bekanntes Mitglied
Hi zusammen.
Ich besitze eine JTable die in eine JScrollPane eingebettet ist.
Für dieses JTable setze ich nun ein selbst definiertes TableModel (extends AbstractTableModel)

Nun möchte ich aber, wenn zum Beispiel das Fenster in dem sich die JScrollPane befindet vergrößert/verkleinert wird, dass die Tabelle mit neuer Zeilen/Spaltenanzahl neu gesetzt wird.

Bisher hatte ich das Problem wie folgt gelöst:
In der Klasse der JTable setze ich das TableModel immer neu!
Also ich erzeuge mir immer wieder ein neues TableModel, welches entsprechend die passende Zeilen/Spaltenanzahl besitzt.


Nun brauche ich aber eine Referenz auf das TableModel und kann daher nicht immer das TableModel neu erzeugen.
Mir erscheint das ohnehin etwas unpraktisch.
Wisst ihr wie ich das TableModel dazu bringe, sich neu "aufzubauen", also die Zeilen und Spaltenanzahl neu zu setzen?
 

slawaweis

Bekanntes Mitglied
Nun möchte ich aber, wenn zum Beispiel das Fenster in dem sich die JScrollPane befindet vergrößert/verkleinert wird, dass die Tabelle mit neuer Zeilen/Spaltenanzahl neu gesetzt wird.

ich vermute an dieser Stelle, dass Du im Grunde keine Tabelle, sondern eine horizontale JList mit Umbruch brauchst. Lese hier gleich das erste Beispiel:

How to Use Lists (The Java™ Tutorials > Creating a GUI with JFC/Swing > Using Swing Components)

Slawa
 

redbomber

Bekanntes Mitglied
also du meinst dass ich in der JTable die Anzahl der Zeilen und Spalten neu setzen muss?
Bzw. wie soll ich die Daten im TableModel neu initialisieren?

Muss ich in der JTable folgendes aufrufen?

Code:
setModel(getModel());
 

redbomber

Bekanntes Mitglied
Also bei mir gibt es folgendes Problem.
Das ganze ist ein Plugin von einem Framework.
Die Daten die in der Tabelle dargestellt werden, an die komme ich erst in der JTable. Und zwar wenn addNotiy() aufgerufen wird.
Daher hatte ich das TableModel immer erst in der JTable dann danach gesetzt.

Nun möchte ich das TableModel einmalig bei der Initialisierung der JTable initialisieren.
Da stehen die Daten die dargestellt werden aber ja noch nicht zur Verfügung.

Jetzt habe ich versucht, überall wo ich früher das TableModel neu gesetzt habe, jetzt einfach
Code:
tableModel.fireTableStructureChanged();

aufzurufen.

Funktioniert aber nicht so ganz.


@ slawaweis
Vielen Dank! Aber ich brauche schon eine JTable, da ich auf diese bereits meine implementierung abgestimmt habe.
 

Ebenius

Top Contributor
redbomber, ich meine das ungefähr so: [HIGHLIGHT="Java"]public class MyTableModel extends AbstractTableModel {

private Object[][] data = {};

@Override
public int getRowCount() {
return data.length;
}

@Override
public int getColumnCount() {
return data.length > 0 ? data[0].length : 0;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex][columnIndex];
}

@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
data[rowIndex][columnIndex] = value;
fireTableCellUpdated(rowIndex, columnIndex);
}

private static Object[][] twoDimArrayCopy(Object[][] array) {
final int rowCount = array.length;
final int columnCount = rowCount == 0 ? 0 : array[0].length;
final Object[][] copy = new Object[rowCount][columnCount];
for (int row = 0; row < rowCount; row++) {
for (int col = 0; col < copy[row].length; col++) {
copy[row][col] = array[row][col];
}
}

return copy;
}

public Object[][] getData() {
return twoDimArrayCopy(data);
}

public void setData(Object[][] data) {
if (data == null) {
throw new IllegalArgumentException( //
"data not allowed null"); //$NON-NLS-1$
}

this.data = twoDimArrayCopy(data);
fireTableStructureChanged();
}
}[/HIGHLIGHT]

Ebenius
 

redbomber

Bekanntes Mitglied
Ebenius, du bist ein Schatz ;)

Ich habe nun einfach eine Methode in meinem TableModel erstellt, welche das
fireTableStructureChanged()
event feuert.

Also immer wenn ich früher das neue TableModel gesetzt hatte, rufe ich einfach diese Methode für das Model auf
und die Tabelle wird neu gezeichnet.

(Die Daten setze ich bei mir nicht neu, da diese sich nicht ändern. Diese Daten werden in einer separaten Klasse gespeichert. Lediglich die Ansicht auf die Daten soll sich ändern.)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
W Neues TableModel und JTable wird nicht refreshed AWT, Swing, JavaFX & SWT 3
D Swing JTable TableModel + RowCount AWT, Swing, JavaFX & SWT 18
N Swing Eintrag in JTable an dessen TableModel weiterreichen AWT, Swing, JavaFX & SWT 3
K JTable +TableModel --> Anpassung der Tabellengröße (Zeilenanzahl) AWT, Swing, JavaFX & SWT 3
L Klick auf JTable -> EditorPane manipulieren, Fragen zu TableModel AWT, Swing, JavaFX & SWT 9
E JTable und tablemodel Verständnisproblem AWT, Swing, JavaFX & SWT 3
D JTable - TableColumnModel - TableModel AWT, Swing, JavaFX & SWT 3
S JTable nimmt TableModel nicht an AWT, Swing, JavaFX & SWT 4
G JTable - TableModel aus ArrayList AWT, Swing, JavaFX & SWT 8
A JTable, eigenes TableModel und dessen Objekte AWT, Swing, JavaFX & SWT 4
G Frage zu JTable und TableModel AWT, Swing, JavaFX & SWT 4
G JTable, TableModel und CellRenderer AWT, Swing, JavaFX & SWT 3
G jTable + ScrollPane (+ TableModel) AWT, Swing, JavaFX & SWT 7
G TableModel von JTable wieder entfernen AWT, Swing, JavaFX & SWT 10
P JTable TableModel JFreeReport AWT, Swing, JavaFX & SWT 4
T anlegen einer jTable mit TableModel AWT, Swing, JavaFX & SWT 3
I Swing JTable zeichnet kein vertical Grid AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen


Oben