Verständnisfrage Codezeile

Bananenbrot

Mitglied
Hallo Leute,

ich versuche folgende Codezeile zu verstehen:
DefaultTableModel tModel=(DefaultTableModel)SqlTable.getModel();
(kompletter Codeblock siehe unten)

Es wird mir nicht klar, was da alles passiert. Z.B: die typunwandlung mit (DefaultTableModel)SqlTable... (richtig?). Ich finde "getModel()" nicht, jedenfalls in keiner Klasse die ich für "zuständig" halte.

Der Code wird ansonsten fehlerfrei compiliert und funktioniert auch, den Abschnitt in dem die Verbindung zum SQL Server hergestellt wird habe ich kopiert.

Kann mir jemand auf die Sprünge helfen?

Danke und Gruß - Matthias

--

[Java]
try {
Class.forName("com.mysql.jdbc.Driver");
connectionUrl = "jdbc:mysql://192.168.0.26/Adressen?" + "user=" + sqluser + "&password=" + sqlpassword;
Connection con = DriverManager.getConnection(connectionUrl);
Statement sta = con.createStatement();
ResultSet rs = sta.executeQuery("select firstName, middleName, lastName, nickName from NamesAndTitles");

DefaultTableModel tModel=(DefaultTableModel)SqlTable.getModel();

while(rs.next()){
String c1=rs.getString("firstName");
String c2=rs.getString("middleName");
String c3=rs.getString("lastName");
String c4=rs.getString("nickName");
tModel.addRow(new Object[]{c1, c2, c3, c4});
}
rs.close();
sta.close();
con.close();
} catch(SQLException e) {
errmsg = "SQL Exception: " + e.toString();
JOptionPane.showMessageDialog(null, errmsg, "SQL Exception", JOptionPane.OK_CANCEL_OPTION);
} catch(ClassNotFoundException cE) {
errmsg = "Class Not Found Exception: " + cE.toString();
JOptionPane.showMessageDialog(null, errmsg, "Class Not Found Exeption", JOptionPane.OK_CANCEL_OPTION);
}

[/Java]
 

Paddelpirat

Bekanntes Mitglied
Was ist denn SqlTable genau? (Wovon abgeleitet und so?)

Ansonsten hast du schon richtig erkannt, dass das Model, welches SqlTable.getModel() zurückliefert in ein DefaultTableModel umgewandelt wird.
 
M

Marcinek

Gast
Nein, es wird nicht umgewandelt. Es ist schon ein DefaultTableModel. Die Sicht auf das Objekt wird verändert. (cast)
 

Jodo

Aktives Mitglied
Ich schätze mal das deine Anwendung eine Swing-GUI besitzt, mit der du die Daten darstellst und eine JTable für die Darstellung nutzt. Diese besitzt ein [JAPI]TableModel[/JAPI](Interface) welches die angezeigten Daten beinhalten. Für eine JTable gibt es u.a.
Code:
JTable.getModel()
welches ein TableModel zurückliefert. Und DefaultTableModel ist eine konkrete Implementierung davon, welche auch Standardmäßig von Swing benutzt wird, und deshalb muss der cast kommen.

Hoffe damit klärt sich alles, auch die getModel()-Frage ;)
 

Bananenbrot

Mitglied
Ich schätze mal das deine Anwendung eine Swing-GUI besitzt, mit der du die Daten darstellst und eine JTable für die Darstellung nutzt. Diese besitzt ein [JAPI]TableModel[/JAPI](Interface) welches die angezeigten Daten beinhalten. Für eine JTable gibt es u.a.
Code:
JTable.getModel()
welches ein TableModel zurückliefert. Und DefaultTableModel ist eine konkrete Implementierung davon, welche auch Standardmäßig von Swing benutzt wird, und deshalb muss der cast kommen.

Hoffe damit klärt sich alles, auch die getModel()-Frage ;)

OK, danke, hast mich draufgehoben - das JTable Object wird weiter oben in dem von Netbeans generierten "generated code" definiert.... der war "zugeklappt". Da muss ich mich noch dran gewöhnen.

Es wird also erst ein Objekt "JTable" instatiiert:
[Java]
SqlTable = new javax.swing.JTable();
[/Java]
Dann wird ein Object "DefaultTableModel" instatiiert und mit den Daten initialisiert die JTable.getModel() zurückliefert, allerdings Typumgewandelt in "DefaultTableModel" (ein vermutlich
"vereinfachtes Model"?).
[Java]
DefaultTableModel tModel=(DefaultTableModel)SqlTable.getModel();
[/Java]
 

Jodo

Aktives Mitglied
Dann wird ein Object "DefaultTableModel" instatiiert und mit den Daten initialisiert die JTable.getModel() zurückliefert, allerdings Typumgewandelt in "DefaultTableModel" (ein vermutlich
"vereinfachtes Model"?).
[Java]
DefaultTableModel tModel=(DefaultTableModel)SqlTable.getModel();
[/Java]

Na, nicht ganz.
Code:
JTable SqlTable = new javax.swing.JTable();
instantiiert sich intern schon selbst ein DefaultTableModel. Das wird dann benutzt um die Daten zu speichern, welche in der sichtbaren Komponente JTable dargestellt werden (int-,String-, char-Werte etc. je nachdem was du eben darstellst).

Der JTable ist aber nur vorgegeben, dass sie ein TableModel hat, welche konkrete Implementierung das ist, ist dann dem Programmierer überlassen.
Die Vererbungs-/Implementierungsgierarchie ist dabei folgende:
Code:
TableModel
(Interface) -wird implementiert->
Code:
AbstractTableModel
(abstrakte Klasse) -vererbt an->
Code:
 DefaultTableModel
(konkrete Klasse).

Wenn du dann in deinem Code
Code:
SqlTable.getModel();
aufrufst, bekommst du eine Referenz auf das TableModel zurück. Mit dem kannst du aber nicht arbeiten wenn du die Daten in der Tabelle haben willst, da es nur ein Interface und keine konkrete Klasse ist. Daher wandelst du den Typ noch in DefaultTableModel um.
Die Laufzeitumgebung hat zwar zu jeder Zeit ein Objekt vom Typ DefaultTableModel, aber dazu solltest du Lektüre zum Thema Polymorphie lesen. Das geht für die Problemlösung deiner Frage jetzt zu weit.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
A Verständnisfrage Java Basics - Anfänger-Themen 12
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
P Verständnisfrage: PageFactory.initElements Java Basics - Anfänger-Themen 2
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
Vivien Kurze Verständnisfrage zu Java Point aus java.awt.* Java Basics - Anfänger-Themen 5
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
P Verständnisfrage zum Mapping Java Basics - Anfänger-Themen 3
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
L Verständnisfrage - Speicherabbild Java Basics - Anfänger-Themen 4
melly_ Verständnisfrage zu args Java Basics - Anfänger-Themen 3
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
K Verständnisfrage eines Abschnitts Java Basics - Anfänger-Themen 6
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
S Modell View Controller Verständnisfrage Java Basics - Anfänger-Themen 24
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
Z Verständnisfrage Anfängerprogramm Java Basics - Anfänger-Themen 0
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
G Methoden Verständnisfrage zur Methoden Java Basics - Anfänger-Themen 7
LionAge Kapselung, Verständnisfrage zur Objekterzeugung Java Basics - Anfänger-Themen 4
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
R OOP / Verständnisfrage zum Konstuktor (siehe code) Java Basics - Anfänger-Themen 7
gamebreiti Verständnisfrage zu contains() Java Basics - Anfänger-Themen 10
A Verständnisfrage - Koordinatenumrechnung Java Basics - Anfänger-Themen 9
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage Array Java Basics - Anfänger-Themen 2
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
P Verständnisfrage Java Basics - Anfänger-Themen 3
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
D Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung Java Basics - Anfänger-Themen 1
S Verständnisfrage zu Anweisungen und deren Wirkung Java Basics - Anfänger-Themen 7
H Verständnisfrage für oder Anweisung Java Basics - Anfänger-Themen 8
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage zu Java-Ausgabe Java Basics - Anfänger-Themen 3
S Verständnisfrage Java Basics - Anfänger-Themen 2
N Verständnisfrage Code Java Basics - Anfänger-Themen 8
B Verständnisfrage Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
M Kurze Verständnisfrage zu einer Java Aufgabe Java Basics - Anfänger-Themen 12
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
M Verständnisfrage: Objekt erzeugen u. zuweisen Java Basics - Anfänger-Themen 16
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
S Verständnisfrage: Exception Gebrauch Java Basics - Anfänger-Themen 2
R Verständnisfrage NPE Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
P Java Objekte - Verständnisfrage Java Basics - Anfänger-Themen 9
N Verständnisfrage zu folgendem Programm Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
K Verständnisfrage zu int.length und String.length() Java Basics - Anfänger-Themen 4
G 2D Array gleichsetzen verständnisfrage Java Basics - Anfänger-Themen 2
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
N verständnisfrage java.util.Calendar Java Basics - Anfänger-Themen 4
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
E Verständnisfrage zu Shutdownhook Java Basics - Anfänger-Themen 5
D Verständnisfrage: Java und MySql Java Basics - Anfänger-Themen 3
F Rekursion Verständnisfrage Java Basics - Anfänger-Themen 6
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
Z Comparator Verständnisfrage Java Basics - Anfänger-Themen 5
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
H Verständnisfrage Persistenz Java Basics - Anfänger-Themen 10
neurox Verständnisfrage zu Threads Java Basics - Anfänger-Themen 4
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
F Verständnisfrage Objekt instanzierung / Polymorphie Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben