Hallo,
habe eine Tabelle die Informationen speichert.
wie wäre eine einfache / elegante Möglichkeit den Datensatz oder Sätze dem Benutzer in einer GUI zu zeigen ?
Hallo,
habe eine Tabelle die Informationen speichert.
wie wäre eine einfache / elegante Möglichkeit den Datensatz oder Sätze dem Benutzer in einer GUI zu zeigen ?
in einer JTable würd ichs machen
wie könnte das in Java aussehn?
public void ausgabe(){
JTable meineAusgabe = new JTable();
String sqlAusgabe = "SELECT * FROM tabelle";
// .. ?
du musst mit JDBC dir die Daten holen und in die Tabelle packen
ich hab einen Connection String erstellt und einen Statement mit denen ich auf die DB zugreifen kann
“SELECT * FROM tabelle” müsste der richtige sql befehl sein
kannst du mir noch zeigen wie ich jetzt das ausgelesene in die Tabelle bekomme?
du kannst die einfach dem Model hinzufügen
DefaultTableModel model = new DefaultTableModel(0,10);
model.addRow(new Object[]{spalte1,spalte2,spalte3,....});
table.setModel(model);
sorry, ich bin noch ein Anfänger in Java…
wozu das modell? was bringt es mir? muss das modell dann in die JTable?
Daten einer Tabelle sollte man nur über das Modell ändern, die JTable basiert auf dem MVC Prinzip.
Die JTable ist für die Darstellung zuständig und die Daten gehören ins Model.
Mit dem Model kannst die Daten die die Tabelle darstellen soll sammel und auch ändern.
hi, kannst du mir mal ein minimal code geben, wie man sowas macht???
hab meine Ergebnise eigentlich in einer List drin… wie bekommt man die Liste in das Modell und wie dann in die JTable?
Sieh dir mal Benis Tut an das ist ne ganz gute Erklärung http://wiki.byte-welt.de/wiki/JTable_(Tutorial)
Diese Seite enthält momentan kein Text
er hat die Klammer nicht mitgenommen
ich hab eine Datenbank. Und aus dieser lese ich Werte ein und speise sie dann in eine JTable (liegt eng am Byte JTable Tutorial).
Nun habe ich eine Button auf dem ein Actionlistener liegt. Dieser soll einen geänderten Wert speichern…
wie kann ich einen Geänderten Wert in einer JTable (bzw. in dessen Modell) erfassen und speichern?
naja Änderungen erfassen kannst du über einen TableListener, da gibts …Changed
Sonst kannst du auch einfach nachsehen in welcher Zeile er ist und den Satz speichern was aber sehr ungenau ist.
Die beste Lösung ist wenn du dir ein eigenes Model schreibst und dort ein Flag für jeden Datensatz hast der geändert wurde und das Flag fragst du dann einfach ab.
das mit der Flag hört sich elegant an, kannst bitte etwas code mit auf den Weg geben, bin noch ganz neu auf dem Gebiet… und kann dir nicht ganz folgen
naja du schreibst dir nen Model (siehe Benis Tut) sobald die setValue Methode aufgerufen wurde setzt du für die Zeile ein Flag (einfach ein boolean).
die Set Value hab ich implementiert
public void setValueAt(Object myValue, int rowIndex, int columnIndex){
...
}
ich muss doch in dem fall auch meine rowIndex und columnIndex hinterlegen?! da bringt mir ein boolischer Wert ja nichts
Naja ich denk du hast pro Zeile einen Datensatz, daher musst du nur die Zeile markieren, klar du kannst auch die Zelle speichern aber das wird viel mehr Aufwand.
Und den bool speicherst du für jeden Datensatz einzeln.
mein Datensatz sind verschieden Daten die Geld kosten. Ich hab die Spalten mit den Preisen editierbar…
und der Button soll die Sachen die Preise die ich geändert habe (letztenendes) in einer DB speichern.
mir ist überhaupt nicht klar wie ich jetzt den Datensatz zwischenspeichern kann??
hab meine ActionListener auf dem Button das model und die table mitgegeben
und hab es mit den methoden
getEditingRow und getEditingColumn versucht
gibt aber immer -1 zurück (also er erkennt es nicht dass ich was verändert habe)