Dauerschleife

Genkin

Aktives Mitglied
EDIT: Sorry, falscher Titel!

Servus,

Ich habe hier folgenden Codeabschnitt.
Es sollen Inhalte einer Datenbank (unterschiedliche Datentypen) auf eine JTable platziert werden. Die Spaltennamen werden auch übernommen, nur sehe ich keine Inhalte. Das SQL-Statement stimmt, ich kann den Inhalt auf der Konsole anzeigen lassen, daher schließe ich da einen Fehler schonmal aus. Kann mir bitte jemand helfen? Es kommen im übrigen auch keine Fehlermeldungen auf der Konsole.

Java:
....

    private JFrame frame;
    public static JTable table;
    private DefaultTableModel model;
       private Class[] types = new Class [] {
               Integer.class, String.class, String.class, Integer.class, Integer.class, Double.class
            };


......
        JButton btnNewButton = new JButton("Search");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
               
                // Clear the data content of the JTable model
                if(columnNames.size() != 0) {
                    model.setRowCount(0);
                    model.setColumnCount(0);
                }
               
                SearchInDB.FriendlySearcher();
               
               
                 ResultSetMetaData rsmd;
                
                
                try {
                    rsmd = SearchInDB.resultSet.getMetaData();
                     int columns=rsmd.getColumnCount();
                     for (int i = 1; i <= columns; i++)
                     {
                         columnNames.addElement( rsmd.getColumnName(i) );
                     }
                     while (SearchInDB.resultSet.next())
                     {
                         Vector<Object> row = new Vector<Object>(columns);
                         for (int i = 1; i <= columns; i++)
                         {
                             row.addElement(SearchInDB.resultSet.getObject(i) );
                         }
                         data.addElement( row );
                     }
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

                model = new DefaultTableModel(data, columnNames) {
                       public Class getColumnClass(int columnIndex) {
                       return types [columnIndex];
                      }
                   };

               
               
               
                   
                table = new JTable(model);
                JScrollPane scrollPane = new JScrollPane();
                table.setRowSelectionAllowed(false);
                table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
                table.setBounds(10, 103, 299, 163);
                scrollPane.setBounds(10, 103, 299, 163);
                layeredPane_1.add(table);
                layeredPane_1.add(scrollPane);
                scrollPane.setViewportView(table);

/*               
                table.getColumnModel().getColumn(0).setPreferredWidth(55);
                table.getColumnModel().getColumn(3).setPreferredWidth(55);
                table.getColumnModel().getColumn(4).setPreferredWidth(45);
                table.getColumnModel().getColumn(5).setPreferredWidth(55);
*/

               
            }
        });
 
Zuletzt bearbeitet:

Wurstkopp

Bekanntes Mitglied
Ist beim debuggen wirklich die "data" Variable an der JTable stelle gefüllt?

Leider ziemlich viel Code in einer Methode und dazu auch noch die DB Sachen in static Methoden. Die entscheidene SQL Ausführung ist vermutlich in "SearchInDB.FriendlySearcher();"? Da fehlt leider der Code. Gehst du da vielleicht schon mal durch das ResultSet durch? Dann würde die While Schleife nicht durchlaufen.
 

Neue Themen


Oben