![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Hallo, im initialize meiner Anwendung baue ich ein JTable mit JScrollPane auf. Hierbei lese ich gleich zum ersten Mal Daten in die Tabelle: Code: defaultTableModel = new DefaultTableModel(1,7); defaultTableModel.setColumnIdentifiers(Spaltenbezeichnung); JTable table = new JTable(defaultTableModel); initDatabaseStuff(); Vector results = datenbankauslesen(); defaultTableModel.setDataVector(results,Spaltenbezeichnung); defaultTableModel.fireTableDataChanged(); table.setEnabled(false); DefaultTableCellRenderer ren = new DefaultTableCellRenderer(); ren.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setHorizontalAlignment(DefaultTableCellRenderer.LEFT); table.setShowGrid(true); table.setColumnSelectionAllowed(true); table.setFocusable(false); table.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); table.sizeColumnsToFit(true); table.setBounds(new java.awt.Rectangle(0, 0, 0, 0)); table.getColumnModel().getColumn(0).setPreferredWidth(150); table.getColumnModel().getColumn(1).setPreferredWidth(370); table.getColumnModel().getColumn(2).setPreferredWidth(120); table.getColumnModel().getColumn(3).setPreferredWidth(120); table.getColumnModel().getColumn(4).setPreferredWidth(120); table.getColumnModel().getColumn(5).setPreferredWidth(120); table.getColumnModel().getColumn(6).setPreferredWidth(30); table.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT); /*table.getColumnModel().getColumn(0).setHeaderRenderer(renderer); table.getColumnModel().getColumn(1).setHeaderRenderer(renderer);*/ table.getColumnModel().getColumn(2).setCellRenderer(ren); table.getColumnModel().getColumn(3).setCellRenderer(ren); table.getColumnModel().getColumn(4).setCellRenderer(ren); table.getColumnModel().getColumn(5).setCellRenderer(ren); table.getColumnModel().getColumn(6).setCellRenderer(ren); jScrollPane = new JScrollPane(table); jScrollPane.setBounds(new java.awt.Rectangle(29, 168, 618, 481)); jScrollPane.setViewportView(table); } return jScrollPane; Soweit klappt hier alles noch ganz gut. Der Benutzer kann von selbst nicht die Spaltenbreite änderen. Und die Spalten werden auch in der gewünschten Größe angezeigt. In meiner Anwendung wird per Button-Druck ein neuer Datensatz in die Datenbank geschrieben und gleichzeitig wird dieser dann in der JTable ausgegeben und da krachts. Die Daten werden zwar angezeigt, jedoch werden die Spaltenbreiten nicht übernommen! Alle Spalten sind wieder gleich groß! Code: initDatabaseStuff(); //Datenbank verbinden Code: datenbankUpdate(); //Datensatz update und schließen initDatabaseStuff(); //Datenbank wieder öffnen Vector results = datenbankauslesen(); //Datensätze auslesen und schließen defaultTableModel.setDataVector(results,Spaltenbezeichnung); defaultTableModel.fireTableDataChanged(); Hat vielleicht jemand eine Idee an was das liegen kann, bzw. was ich evtl. in der Buttonmethode nicht berücksichtigt habe? Grüße |
|
| | Nach oben #2 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 581
|
Im Zweifelsfall würde ich einfach die Breite der Spalten gleich nach dem anfügen eines Datensatzes noch einmal ausführen lassen. Vielleich möchte das "DefaultTableModel" gerne, dass die Spalten alle gleich groß sind. Gruß Sparrow |
| | |
| | Nach oben #3 |
| Gast
Beiträge: n/a
|
Hi sparrow, mein code im der Button-Methode, welche den DatenbankInsert ausführt sieht jetzt so aus!! Code: initDatabaseStuff(); /* INSERT in die Datenbank */ datenbankInsert(); initDatabaseStuff(); /* Erneut die JTable befüllen */ Vector results = datenbankauslesen(); JTable table = new JTable(defaultTableModel); table.getColumnModel().getColumn(0).setMaxWidth(150); table.getColumnModel().getColumn(1).setMaxWidth(370); table.getColumnModel().getColumn(2).setMaxWidth(120); table.getColumnModel().getColumn(3).setMaxWidth(120); table.getColumnModel().getColumn(4).setMaxWidth(120); table.getColumnModel().getColumn(5).setMaxWidth(120); table.getColumnModel().getColumn(6).setMaxWidth(30); Da gibts wohl noch viel zu Lernen für mich!!! |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| JTable Probleme | boehseronkel | Desktop-Applikationen und Grafik | 3 | 09.11.2006 18:30 |
| GESUCHT:simples beispiel zum thema resultset, tablemodel => in einer JTable ausgeben! | bamboocha | Desktop-Applikationen und Grafik | 2 | 06.06.2005 21:34 |