NetBeans Vector durch ArrayList ersetzen

epitox

Mitglied
Guten Tag lieber Forenuser,

da sich Netbeans beschwert, wenn ich einen Vector verwende, dachte ich mir: "Komm, ersetzt du die Vectoren eben mal schnell durch ArrayLists."

Ursprungscode:
Java:
                Vector columnNames = new Vector();
	        Vector data = new Vector();
                
	        try{
	            //Abfrage definieren
	            String query = "SELECT * FROM bmaterial WHERE Abteilung LIKE '%"+abt+"%' ;";
	            //Datenbankverbindung herstellen
	            Statement stmt = con.createStatement();
	            ResultSet rst = stmt.executeQuery(query);
	            ResultSetMetaData md = rst.getMetaData();
	            int columns = md.getColumnCount();
	            //  Spaltennamen ermitteln
	            for (int i = 1; i <= columns; i++) {
	                String colname=md.getColumnName(i);
	                columnNames.addElement( colname );
	            }
	            //  Zeileninhalt ermitteln
	            while (rst.next()) {
	                Vector row = new Vector(columns);
	                for (int i = 1; i <= columns; i++) {
                          
	                    row.addElement( rst.getObject(i) );
	                }
	                data.addElement( row );
	            }
	            rst.close();
	            stmt.close();
	            con.close();
	        } catch(Exception e) {
	            e.printStackTrace();
	        }
             
                report = new JTable(data, columnNames);
	        scrollTabelle.setViewportView(report);


Neuer Code:
Java:
                ArrayList columnNames = new ArrayList();
	        ArrayList data = new ArrayList();
                
	        try{
	            //Abfrage definieren
	            String query = "SELECT * FROM bmaterial WHERE Abteilung LIKE '%"+abt+"%' ;";
	            //Datenbankverbindung herstellen
	            Statement stmt = con.createStatement();
	            ResultSet rst = stmt.executeQuery(query);
	            ResultSetMetaData md = rst.getMetaData();
	            int columns = md.getColumnCount();
	            //  Spaltennamen ermitteln
	            for (int i = 1; i <= columns; i++) {
	                String colname=md.getColumnName(i);
	                columnNames.add( colname );
	            }
	            //  Zeileninhalt ermitteln
	            while (rst.next()) {
	                ArrayList row = new ArrayList(columns);
	                for (int i = 1; i <= columns; i++) {
                          
	                    row.add( rst.getObject(i) );
	                }
	                data.add( row );
	            }
	            rst.close();
	            stmt.close();
	            con.close();
	        } catch(Exception e) {
	            e.printStackTrace();
	        }
             
                report = new JTable(data, columnNames);
	        scrollTabelle.setViewportView(report);

report = new JTable(data, columnNames); zeigt mir allerdings nachfolgende Fehlermeldung an:

Java:
no suitable constructor found for JTable(java.util.ArrayList,java.util.ArrayList)
    constructor javax.swing.JTable.JTable(java.lang.Object[][],java.lang.Object[]) is not applicable
      (actual argument java.util.ArrayList cannot be converted to java.lang.Object[][] by method invocation conversion)
    constructor javax.swing.JTable.JTable(java.util.Vector,java.util.Vector) is not applicable
      (actual argument java.util.ArrayList cannot be converted to java.util.Vector by method invocation conversion)
    constructor javax.swing.JTable.JTable(int,int) is not applicable
      (actual argument java.util.ArrayList cannot be converted to int by method invocation conversion)
    constructor javax.swing.JTable.JTable(javax.swing.table.TableModel,javax.swing.table.TableColumnModel,javax.swing.ListSelectionModel) is not applicable
      (actual and formal argument lists differ in length)
    constructor javax.swing.JTable.JTable(javax.swing.table.TableModel,javax.swing.table.TableColumnModel) is not applicable
      (actual argument java.util.ArrayList cannot be converted to javax.swing.table.TableModel by method invocation conversion)
    constructor javax.swing.JTable.JTable(javax.swing.table.TableModel) is not applicable
      (actual and formal argument lists differ in length)
    constructor javax.swing.JTable.JTable() is not applicable
      (actual and formal argument lists differ in length)

Gibt es eine Methode, mit der ich Java dazu bewegen kann, mir die beiden ArrayLists zu einer Tabelle zusammenzufügen?

Vielen Dank für eure Hilfe!
 
JTable braucht entweder einen Array oder einen Vector.

du kannst einen Vector mit deiner ArraList erstellen [c]new Vector(data)[/c] zb
 
oder mittels "Kann ich die ArrayList auch in ein Array konvertieren?" in eine Suchmaschine eintippen..
 

Zurück
Oben