SWT table updaten

Status
Nicht offen für weitere Antworten.

pymote

Aktives Mitglied
hallo,
ich lese aus einer datei informationen aus und zeige diese dann in einer swt table an. nebenbei gibt es auch die möglichkeit die tabelle zu aktualisieren da sich die daten in der datei verändern können. allerdings werden bei der aktualisierung nicht die alten table items ersetzt sondern die neuen nur drangehängt. das liegt daran dass ich beim auslesen der zeilen in der datei, pro zeile ein neues tableitem erzeuge:

Code:
fr = new FileReader("c:/test/test.csv");
lnr = new LineNumberReader(fr);
for ( String line; (line = lnr.readLine()) != null; ){

	String[] lineValues = line.split(";");
	TableItem ti = new TableItem(tableExcel, SWT.NONE);
	ti.setText(lineValues);
	
}
lnr.close();
fr.close();

muss ich für mein problem die tabelle oder sogar die shell irgendwie neu zeichnen lassen? gibt es so eine art update() funktion für tabellen/shells.
vielen dank
 

pymote

Aktives Mitglied
ok, wenn ich das so richtig verstanden hab,
1. muss ich anfangs ermitteln wieviele tableitems ich benötige,
2. diese dann der funktion übergeben, die mir die datei ausliest
3. und abschliessend den inhalt der tabelitems mit den werten füllen

stimmt das so?
 

Semerzo

Aktives Mitglied
Morgen,

Gut das es geklappt hat, trotzdem nochmal für die SuFu-Benutzer:

Der Ansatz ist eigentlich so, dass du eine Table hast, deren einzelne Zeilen sind TableItems. Ein TableItem wiederrum ist intern ein Vector mit 0-n Elementen, wobei n der Anzahl der Spalten entspricht. Wenn du jetzt weisst, dass du in der 5ten Zeile das Element der dritten Spalte ändern musst, schreibst du:
Code:
TableItem row = myTable.getItem(2); // 0 basiert also 3te Spalte = 5-1
row.setText(4, "der neue Text"); // 0 basiert also 5tes Element = 5-1

Du könntest auch eine Methode der Art:
Code:
public void setItem(int column, int row, String value) {
  TableItem row = myTable.getItem(column);
  row.setText(row, value);
}

Versuchen, wobei ich die hier nicht getestet hab.

Soweit ich Tables in SWT verstanden habe, gibt es keine festgelegte Grenze von Zeilen. Durch
Code:
new TableItem(Table parent, int style)
wird eine neue Zeile angelegt. Da das Parent mitgegeben wurde, ist auch klar wohin sie gehört. In deinem Fall wurde sie immer an das Ende der Tabelle angehangen, was auch so beabsichtigt ist.

Was du vorher wissen musst, bevor du auf die einzelnen Elemente eines Items zugreifst, ist die Anzahl der Spalten. Ansonsten bekommst du schon mal gerne eine IndexOutOfBoundsException.

Duch
Code:
new TableColumn(Table parent, int style)
legst du eben eine solche neue Spalte an. Das sollte auch funktionieren, wenn es schon Werte in der Tabelle gibt. So werden an die "Zeilen-Vektoren" (TableItems) ein neues leeres Element am Ende angefügt.

Das TableModel ist in SWT also etwas versteckt, um darauf zu zu greifen, musst du, wie oben beschrieben die Werte der Elemente eines Items manipulieren.
 

ronny

Bekanntes Mitglied
uhm, warum verwendet ihr denn nicht die klasse TableViewer von jface?
Dazu gibt es alles, wie bei Swing auch.. (naja, fast alles :wink: )

ITableLabelProvider
IStructuredContentProvider
usw.

Die Umsetzung funktioniert ganz einfach.
auf der eclipse seite gibts auch tutorials bzw. articles dazu.
hab jetzt leider net die Zeit für links gucken.. aba das findet ihr schon.
ansonsten post ich später noch mal links dazu....

Das mit dem TableItem hin und her ist viel zu aufwändig.. da wird
man ja nie fertig!!
:D

vielleicht ist das ja ne alternative für euch...
 

Semerzo

Aktives Mitglied
Naja, weil ich im Moment mit SWT arbeiten muss, ohne JFace, ist eine Auflage. Hatte nicht dran gedacht, dass er die nicht hat. Sonst hatte ich den TableViewer empfohlen. :D

Hab im Moment halt Scheuklappen auf.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Default table model aktualisieren AWT, Swing, JavaFX & SWT 7
J Anbindung Textfeldklasse an Table funktioniert nicht AWT, Swing, JavaFX & SWT 3
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
S JavaFX Boolean ändern Table View AWT, Swing, JavaFX & SWT 14
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
C TableModel zugehörige Table ermitteln AWT, Swing, JavaFX & SWT 3
T Table Renderer AWT, Swing, JavaFX & SWT 2
T Default Table wird nicht angezeigt AWT, Swing, JavaFX & SWT 15
E JavaFX Von der Table-Cell zur Row AWT, Swing, JavaFX & SWT 0
A JavaFX Table Delete Row AWT, Swing, JavaFX & SWT 5
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
D JavaFX Table Filter AWT, Swing, JavaFX & SWT 4
R Swing JTable : Header der Spalten ergänzen mit caption (wie bei html-table) AWT, Swing, JavaFX & SWT 2
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
G Border der Komponente bei Table CellRenderer überschreiben AWT, Swing, JavaFX & SWT 0
M MouseListener auf table oder scrollPane AWT, Swing, JavaFX & SWT 11
T SWT checkbox in table AWT, Swing, JavaFX & SWT 6
C JTable Drag and Drop von Zeilen innerhalb einer Table AWT, Swing, JavaFX & SWT 2
Z JavaFX Table mit MenuButton AWT, Swing, JavaFX & SWT 6
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
E extended Swing Table AWT, Swing, JavaFX & SWT 2
J Einträge aus Table löschen ohne Exception AWT, Swing, JavaFX & SWT 6
T Table-Zeilen mit Thread einfärben AWT, Swing, JavaFX & SWT 15
E SWT Popupmenu auf der Überschrift eines swt.widgets.Table verhindern? AWT, Swing, JavaFX & SWT 3
Nicklas2751 Table View zeigt keinen Inhalt nur leere Zeilen AWT, Swing, JavaFX & SWT 2
reibi SWT SWT - Table AWT, Swing, JavaFX & SWT 8
A Swing JButton in einer Table Cell AWT, Swing, JavaFX & SWT 9
lumo SWT JFace Databinding +Custom Table AWT, Swing, JavaFX & SWT 2
M SWT - Table deselecten AWT, Swing, JavaFX & SWT 2
R SWT | Table | Zeilenkopf AWT, Swing, JavaFX & SWT 2
M SWT Table disabled und Scrollbar enabled AWT, Swing, JavaFX & SWT 11
C [SWT] Widget Table verliert nach Sortierung farbige / eingefärbter Background / Zellen AWT, Swing, JavaFX & SWT 3
L Inhalt einer table löschen AWT, Swing, JavaFX & SWT 2
L Jbutton in table AWT, Swing, JavaFX & SWT 2
lumo SWT Table Selection Color +Focus Out AWT, Swing, JavaFX & SWT 14
S SWT Maximum an Items in Table? AWT, Swing, JavaFX & SWT 2
F SWT table refresh per Thread AWT, Swing, JavaFX & SWT 2
Q SWT Mindetsgröße für Table AWT, Swing, JavaFX & SWT 7
1 Swing manual resize table column to min size AWT, Swing, JavaFX & SWT 2
hdi SWT SWT Table: 2 kleine Probleme AWT, Swing, JavaFX & SWT 4
S SWT Table Größen verändern AWT, Swing, JavaFX & SWT 10
lumo SWT Table und Klassen AWT, Swing, JavaFX & SWT 14
lumo SWT Table CellEditor - knifflig AWT, Swing, JavaFX & SWT 35
M SWT Table mit Columns und Items AWT, Swing, JavaFX & SWT 3
L Java Table AWT, Swing, JavaFX & SWT 4
F Swing J(X)Table Spalten umsortieren NUR im View (Wie finde ich eine Spalte nach Name?) AWT, Swing, JavaFX & SWT 3
A SWT Table mit Bildern und Checkboxes AWT, Swing, JavaFX & SWT 4
A SWT Table hat keine Scrollbar AWT, Swing, JavaFX & SWT 12
A SWT Table clearAll() und zurücksetzen. AWT, Swing, JavaFX & SWT 3
K SWT Table Modell / Datenmodell AWT, Swing, JavaFX & SWT 14
S Table oder TableModel so ueberschreiben, dass Columns minimale Breite haben? AWT, Swing, JavaFX & SWT 2
T SWT - Table Events AWT, Swing, JavaFX & SWT 3
B SWT - Drag & Drop innerhalb einer Table AWT, Swing, JavaFX & SWT 3
T Fokus auf CB in Table mit beliebiger Taste AWT, Swing, JavaFX & SWT 12
S swt table mit checkboxen: wie nachträglich im code setzen? AWT, Swing, JavaFX & SWT 6
S Seltsam: SWT Table zeigt keine Scrollbar an AWT, Swing, JavaFX & SWT 12
G SWT-Table sortieren AWT, Swing, JavaFX & SWT 12
T Input-Check bei Textfeldern in Table AWT, Swing, JavaFX & SWT 5
G SWT Table Controll AWT, Swing, JavaFX & SWT 7
L SWT-Table: Datum ausgeben? AWT, Swing, JavaFX & SWT 5
G Table in SWT AWT, Swing, JavaFX & SWT 2
S Table Row per Drag and Drop in andere Table schieben? AWT, Swing, JavaFX & SWT 14
S SWT Table - Wie Columns hinzufügen / entfernen AWT, Swing, JavaFX & SWT 3
K javax.swing.table.TableRowSorter AWT, Swing, JavaFX & SWT 13
I JComboBox in Table AWT, Swing, JavaFX & SWT 4
G wo wird die table mit daten gefüllt? oô AWT, Swing, JavaFX & SWT 4
S SWT Drag&Drop / Table AWT, Swing, JavaFX & SWT 9
E JTable-während der Einfügezeit der Zellen in die Table AWT, Swing, JavaFX & SWT 2
S table - combobox AWT, Swing, JavaFX & SWT 7
D Selection SWT Table AWT, Swing, JavaFX & SWT 5
D SWT Table AWT, Swing, JavaFX & SWT 5
P Table Layout remove()? AWT, Swing, JavaFX & SWT 2
W Zeile in Table (SWT) selektieren und auslesen AWT, Swing, JavaFX & SWT 4
G Dringend ! SWT-Table übernimmt Änderung nicht AWT, Swing, JavaFX & SWT 2
L Multiline Table AWT, Swing, JavaFX & SWT 3
R SWT: Icons im Table vor den Einträgen AWT, Swing, JavaFX & SWT 3
T mit rechter maustaste Table row selektieren AWT, Swing, JavaFX & SWT 2
F Zeilenhöhe bei SWT Table AWT, Swing, JavaFX & SWT 3
S Nochmal Spaltenbriete im Table AWT, Swing, JavaFX & SWT 2
G mal wieder table. AWT, Swing, JavaFX & SWT 3
V SWT Table mit SWT.CHECK AWT, Swing, JavaFX & SWT 2
S Frage zu Table(Column)Model AWT, Swing, JavaFX & SWT 3
J ScrollPanel mit 2 Table`s AWT, Swing, JavaFX & SWT 5
J Table Model AWT, Swing, JavaFX & SWT 2
J Abstract Table Model AWT, Swing, JavaFX & SWT 7
T in einer Table soll jede zweite Zeile markiert werden AWT, Swing, JavaFX & SWT 3
E Inhalt einer Zelle eine Table in ein TextField bekommen AWT, Swing, JavaFX & SWT 24
L Label im JavaFX Thread Updaten AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Label lässt sich innerhalb service Task nicht updaten? AWT, Swing, JavaFX & SWT 22
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
N JavaFX TextArea Updaten bevor Prozess gestartet wird AWT, Swing, JavaFX & SWT 7
I JavaFX Im Controller die ProgressBar mit Task updaten AWT, Swing, JavaFX & SWT 6
K Swing JTable updaten AWT, Swing, JavaFX & SWT 9
A Swing JMenuBar updaten AWT, Swing, JavaFX & SWT 2
J JTree updaten AWT, Swing, JavaFX & SWT 2
S Swing Oberfläche rekusiv updaten mit updateUi() AWT, Swing, JavaFX & SWT 10
N JTable updaten AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben