jTable model setzen

Paul279

Aktives Mitglied
Hallo liebe Community,

normalerweise ist es ganz einfach ein ResultSetTableModel in JTable zu implementieren.

SQL:
ResultSetTableModel meinModel = new ResultSetTableModel("org.apache.derby.jdbc.ClientDriver", "jdbc:derby://localhost:1527/ProgramDatenbank", "DatenbankTest", "Passwort", "select * from punkte");

jTable.setModel(meinmodel);

Natürlich geht das mit dem GUI Designer von Netbeans nicht so einfach:

hier mein Code:
Java:
    public Hauptform() throws SQLException {
              
        try {
            ResultSetTableModel meinModel = new ResultSetTableModel("org.apache.derby.jdbc.ClientDriver", "jdbc:derby://localhost:1527/ProgramASDU", "asdu", "Paßßw0rd", "select * from punkte");

        initComponents();

        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Hauptform.class.getName()).log(Level.SEVERE, null, ex);
        }
            
        

    }

Meine Ansätze:
tempbym.jpg


Dabei bekomme ich den Fehler:
SQL:
error: cannot find symbol
        jTableBewertungJuroren.setModel(meinModel);
  symbol:   variable meinModel
  location: class Hauptform

2. Dann habe ich versucht in der GUI bei setModel(new ResultSetTableModel("org.apache.derby.jdbc.ClientDriver", "jdbc:derby://localhost:1527/ProgramDatenbank", "DatenbankTest", "Passwort", "select * from punkte")); zu schreiben. Aber dann braucht er ein SQLException to thrown. In der GUI kann man das leider nicht wirklich sagen "add Throw SQLException"

Bei Customize Code habe ich ein bisschen rumgespiel, aber es hat leider nie funktioniert.


Naja, kenn mich leider nicht gut in der GUI aus, könnte mir jemand sagen wie ich mein "meinModel" in das JTable hinein bekomme.

Danke sehr
 
Zuletzt bearbeitet:

Attila

Bekanntes Mitglied
Java:
Connection con = ............
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery("SELECT .................. );
ResultSetTableModel meinModel = new ResultSetTableModel(rset);
jTable.setModel(meinModel);
 

Paul279

Aktives Mitglied
danke für den post, aber das habe ich schon gewusst.
Das funktioniert, aber ich möchte gerne wissen, wie man es mit dem Netbeans GUI Builder hinbekommt.

Dein Code ist ja fast ident wie zu meinem:
Java:
ResultSetTableModel meinModel = new ResultSetTableModel("org.apache.derby.jdbc.ClientDriver", "jdbc:derby://localhost:1527/ProgramDatenbank", "DatenbankTest", "Passwort", "select * from punkte");
 
jTable.setModel(meinmodel);

nur dass ich die connection und das statement in einer KLasse mache.

Ich würde jetzt gerne wissen, was ich klicken muss, damit ich das Model beim Netbeans GUI BUilder einbinden kann. Ich nehme schwer an:

Rechte Maustaste - Custom Code - aber dann komme ich leider nicht weiter.

Sobald ich im Custom Code Bereich mein new ResultSetTableModel einbaue, macht er immer Fehler:
(Error add throw SQLException). Kann ich aber im Custom Code Bereich nicht hinzufügen?

Ich hoffe, dass es jetzt verständlich ist was ich meine
 

mla.rue

Bekanntes Mitglied
Die Fehlermeldung wäre gut, dann könnte man wissen was da schiefgelaufen ist. An und für sich ist es nämlich einfach... und die Fehlermeldungen in Netbeans sind auch recht aussagekräftig.

Meine Vermutung (so ins Blaue): die Komponenten sind in der Methode initComponents() beschrieben, die wiederum vom Konstruktor beim Start der GUI ausgeführt wird. Wenn dein ResultSetTableModel erst zur Laufzeit irgendwann erstellt wird, kann das natürlich bei der Initialisierung nur schiefgehen. (Wie gesagt ist das nur eine Vermutung, wenn das aber der Fehler ist, dann kA, weil den findet man mit der Hilfe der Fehlerbeshreibungen sehr schnell... und einfach).

Wie auch immer, die Vorgehensweise wäre:
Klasse (Form) mit der Tabelle auswählen, rechtsklick und Customize Code. Im unteren Bereich (variable declaration code) schreibst du (in die erste Zeile reinklicken, eine ComboBox erscheint in der steht 'predeclaration') private ResultSetTableModel meinModel;
Dann gehst in den oberen Breich (initialization code) und schreibst in die erste Zeile (pre declaration combobox erscheint wieder) meinModel = new ResultSetTableModel(){}; Bei der Zeile wo setModel setzt, gehst in der Combobox auf 'custom property' und ändert den Wert in den Klammern in 'meinModel'.
SOllte dann etwa so aussehen:

Java:
//initialization code
meinModel = new ResultSetTableModel() {};
jTable1 = new javax.swing.JTable();

jTable1.setModel(meinModel);

jScrollPane1.setViewportView(jTable1);

//variable declaration code
private ResultSetTableModel meinModel;
private javax.swing.JTable jTable1;

Dann gehst in der IDE auf Source und Menü: Source -> Fix Imports.
Zur Laufzeit in der GUI hast dann irgendwo meinModel.(methode zum Setzen der Werte) und meinModel.fireTableDataChanged();

natürlich solltest das Ganze deiner ResultSetTableModel Klasse anpassen
 

Paul279

Aktives Mitglied
Danke mla.rue, genau das ist es was ich gesucht habe. Dein Ansatz war komplett richtig. Die Komponenten sind in initComponents() deklariert.

Leider funktioniert es noch nicht ganz (jetzt mit Fehlermeldungen :) )

Mein Code ist ident wie deiner:
Java:
//initialization code
meinModel = new ResultSetTableModel() {};
jTable1 = new javax.swing.JTable();
 
jTable1.setModel(meinModel);
 
jScrollPane1.setViewportView(jTable1);
 
//variable declaration code
private ResultSetTableModel meinModel;
private javax.swing.JTable jTable1;

Nun erstes Problem:
Error Meldung 1:
Java:
 error: constructor ResultSetTableModel in class ResultSetTableModel cannot be applied to given types;
        meinModel = new ResultSetTableModel() {};
  required: String,String,String,String,String
  found: no arguments

Gut das war noch leicht zu lösen, neuer Code:

Java:
//initialization code
meinModel = new ResultSetTableModel("org.apache.derby.jdbc.ClientDriver", "jdbc:derby://localhost:1527/ProgramASDU", "asdu", "Paßßw0rd", "select * from punkte") {};
jTable1 = new javax.swing.JTable();
 
jTable1.setModel(meinModel);
 
jScrollPane1.setViewportView(jTable1);
 
//variable declaration code
private ResultSetTableModel meinModel;
private javax.swing.JTable jTable1;

Jetzt hätte er alle Werte, aber nun schmeißt er einen SQL Fehler:
Java:
error: unreported exception SQLException; must be caught or declared to be thrown

aber ich kann nicht beim "initComponent()" ein throw SQLException dazuschreiben (gesperrter Bereich) und wenn ich es mit dem Editor bearbeite, spinnt Netbeans komplett.

Ich bitte dich mir noch einmal drüber zu helfen
Danke sehr

PS:
Eine Verständnisfrage:
Was heißen die geschwungenen Klammern bitte:
Java:
new ResultSetTableModel() {};

und Fix Imports habe ich leider nicht gefunden?
 

mla.rue

Bekanntes Mitglied
die geschweifte Klammer ist für 'Optionen' deines TableModel. Beispiel:
Java:
jtPatients.setModel(new javax.swing.table.DefaultTableModel(data, header){
    Class[] types = new Class [] {
        java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
    };
    boolean[] canEdit = new boolean [] {
        false, false, false, false
    };
    public Class getColumnClass(int columnIndex) {
        return types [columnIndex];
    }
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return canEdit [columnIndex];
    }
}
);

Mit der Behandlung von Exceptions (throws, try-catch) solltest dich mal ausgiebiger befassen. Einfachste Sache der Welt. Da du der TableModel Klasse alle DB Sachen übergibst ist davon auszugehen, dass dort der ganze DB Kram passiert :). Brauchst dann nur noch an den richtigen Stellen

Java:
try {
    //z.B.
    Statement sql = conDb.createStatement();
    sql.executeUpdate(strSqlQuery);
    conDb.close();
} catch (SQLException ex) {
    javax.swing.JOptionPane.showMessageDialog(null, ex, "SqlException", 0);
}
setzen und fertig, oder mit throws SQLException eine Ebene nach oben leiten und dann dort mit try catch arbeiten etc pp.

FixImports erreichst du durch strg+shift+i oder im Menü (oben ;)) 'Source' (5ter Menüeintrag), da zweiter Bereich 'FixImports' (4te Zeile)... heisst in der deutschen Fassung der IDE aber vermutlich anders.
 

Paul279

Aktives Mitglied
Guten Abend

Es tut mir leid für die Verspätete Antwort, die Arbeit hat mir sehr zu schaffen gemacht.

Danke mla.rue für deine Antwort. Es hat alles tadellos funkioniert mit try and catch.
Ich werde mich mal weiter einlesen in dieses Kapitel, hier muss ich noch viel lernen :rtfm:

Und es tut mir leid für die Unfähigkeit meinerseits, dass ich den Punkt "Fix imports" nicht gefunden habe.
Ich sollte aufhören mitten in der Nacht zu arbeiten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Swing JTable - Zeilen färben (mit Model) AWT, Swing, JavaFX & SWT 13
C Swing JTable verbindet sich nicht mit Model AWT, Swing, JavaFX & SWT 20
K Swing JTable Model aktualisieren AWT, Swing, JavaFX & SWT 2
T JTable Model AWT, Swing, JavaFX & SWT 5
D Swing JTable Model View Problem AWT, Swing, JavaFX & SWT 6
F unspezifizierte Frage zu JTable/ Model AWT, Swing, JavaFX & SWT 6
D JTable, Model, Fokus AWT, Swing, JavaFX & SWT 3
hdi Swing JTable: Löschen vom Daten im Model AWT, Swing, JavaFX & SWT 7
J JTable Model laesst sich nicht serialisieren? AWT, Swing, JavaFX & SWT 16
P jTable mit Model lässt sich nicht neu laden AWT, Swing, JavaFX & SWT 5
P JTable/Model füllen mit Fortschrittsbalken, Var. Rückgabetyp AWT, Swing, JavaFX & SWT 2
G JTable und Model AWT, Swing, JavaFX & SWT 21
J JTable / Model Daten verändern AWT, Swing, JavaFX & SWT 5
C [JTable] ArrayIndexOutOfBoundsException im Model AWT, Swing, JavaFX & SWT 8
Icewind JTable zeigt neue elemente im model nicht sofort an AWT, Swing, JavaFX & SWT 3
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
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
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
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben