Hallo Leute,
ich bekomme irgenwie den clmHeader nicht in die JTable.
Wenn ich es so mache bekomme ich den Scrollbalken unten von ScrollPane nicht an der Seite aber ja mit clmHeader:
jPanel1.setLayout(new java.awt.GridLayout());
jPanel1.setMinimumSize(new java.awt.Dimension(0, 0));
jPanel1.setPreferredSize(new java.awt.Dimension(0, 0));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
jPanel1.add(jScrollPane1);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
Und wenn ich es so versuche habe ich beide Scrollbalken aber dafür kein clmHeader.
jPanel1.setLayout(new java.awt.GridLayout());
jPanel1.setMinimumSize(new java.awt.Dimension(0, 0));
jPanel1.setPreferredSize(new java.awt.Dimension(0, 0));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jPanel3.add(jTable1);
jScrollPane1.setViewportView(jPanel3);
jPanel1.add(jScrollPane1);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
Der clmHeader ist vorher über MetaDaten aus dem MySql eingelesen worden.
private void showTableContent() {
if (con != null && dbmd != null){
try{
//Statement Basisschnittstelle für alle SQL-Anweisungsformen
Statement stmt = con.createStatement();
String db = (String)this.DatabasesComboBox.getSelectedItem();
if (db == null || db == "")
return;
//execute um beliebige "unbekannte" SQL-Anweisungen an die Datenbank zu schicken
stmt.execute("USE " + db);
String tbl = (String)this.TablesComboBox.getSelectedItem();
if (tbl == null || tbl == "")
return;
//Select Anweisung durch Statement-Methode executeQuery
ResultSet rs = stmt.executeQuery("SELECT * FROM " + tbl);
//DefaultTableModel wird hier aufgefrischt
tblDataModel = new DefaultTableModel();
//columnHeaders = new Object[clmnCnt];
//columnClasses = new Class[columnHeaders.length];
Vector clmHeader = new Vector();
Vector dataVector = new Vector();
ResultSetMetaData rsmd = rs.getMetaData();
int clmCnt = rsmd.getColumnCount();
//innere Klasse
for(int i = 1; i <= clmCnt;i++)
//Aus MetaData können wir über getColumnName die Namen rausholen
clmHeader.addElement(rsmd.getColumnName(i));
while(rs.next()){
Vector rowVector = new Vector();
for(int i = 1; i <= clmCnt; i++){
//rowVector hat die Zahlen der Spalten
rowVector.addElement(rs.getString(i));
}
//dataVector hat die Zahlen der Zeilen
dataVector.addElement(rowVector);
}
tblDataModel.setDataVector(dataVector,clmHeader);
jTable1.setModel(tblDataModel);
jTable1.updateUI();
//O.K.
//ende der Instanzklasse MyTableModel von Zeile 62:
}catch(SQLException sqle){
sqle.printStackTrace();
}
}
}
Kann mir da bitte jemand weiterhelfen?
ich bekomme irgenwie den clmHeader nicht in die JTable.
Wenn ich es so mache bekomme ich den Scrollbalken unten von ScrollPane nicht an der Seite aber ja mit clmHeader:
jPanel1.setLayout(new java.awt.GridLayout());
jPanel1.setMinimumSize(new java.awt.Dimension(0, 0));
jPanel1.setPreferredSize(new java.awt.Dimension(0, 0));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
jPanel1.add(jScrollPane1);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
Und wenn ich es so versuche habe ich beide Scrollbalken aber dafür kein clmHeader.
jPanel1.setLayout(new java.awt.GridLayout());
jPanel1.setMinimumSize(new java.awt.Dimension(0, 0));
jPanel1.setPreferredSize(new java.awt.Dimension(0, 0));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jPanel3.add(jTable1);
jScrollPane1.setViewportView(jPanel3);
jPanel1.add(jScrollPane1);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
Der clmHeader ist vorher über MetaDaten aus dem MySql eingelesen worden.
private void showTableContent() {
if (con != null && dbmd != null){
try{
//Statement Basisschnittstelle für alle SQL-Anweisungsformen
Statement stmt = con.createStatement();
String db = (String)this.DatabasesComboBox.getSelectedItem();
if (db == null || db == "")
return;
//execute um beliebige "unbekannte" SQL-Anweisungen an die Datenbank zu schicken
stmt.execute("USE " + db);
String tbl = (String)this.TablesComboBox.getSelectedItem();
if (tbl == null || tbl == "")
return;
//Select Anweisung durch Statement-Methode executeQuery
ResultSet rs = stmt.executeQuery("SELECT * FROM " + tbl);
//DefaultTableModel wird hier aufgefrischt
tblDataModel = new DefaultTableModel();
//columnHeaders = new Object[clmnCnt];
//columnClasses = new Class[columnHeaders.length];
Vector clmHeader = new Vector();
Vector dataVector = new Vector();
ResultSetMetaData rsmd = rs.getMetaData();
int clmCnt = rsmd.getColumnCount();
//innere Klasse
for(int i = 1; i <= clmCnt;i++)
//Aus MetaData können wir über getColumnName die Namen rausholen
clmHeader.addElement(rsmd.getColumnName(i));
while(rs.next()){
Vector rowVector = new Vector();
for(int i = 1; i <= clmCnt; i++){
//rowVector hat die Zahlen der Spalten
rowVector.addElement(rs.getString(i));
}
//dataVector hat die Zahlen der Zeilen
dataVector.addElement(rowVector);
}
tblDataModel.setDataVector(dataVector,clmHeader);
jTable1.setModel(tblDataModel);
jTable1.updateUI();
//O.K.
//ende der Instanzklasse MyTableModel von Zeile 62:
}catch(SQLException sqle){
sqle.printStackTrace();
}
}
}
Kann mir da bitte jemand weiterhelfen?