hi!
ich versuche mittels Vector-Klasse ein Resultset in eine jtable zu schreiben, mit einer LinkedHashMap hat es geklapt, jedoch wirft der Vector mir immer Fehler entgegen
Hier der Code:
Alles anzeigen
Dieser Teil:
public Object getValueAt(int arg0, int arg1)
scheint nicht richtig zu funktionieren, obwohl der Vector die Daten enthält, wird wohl immer eine ArrayIndexOutofBound - Exception rausgehauen, so dass alle Spalten 0 sind, wegen dem return. Wenn ich kein Try und Catch ein baue kommt die Meldung halt direkt ->
Könnt ihr mir irgendwie helfen?
Vielen Dank
ich versuche mittels Vector-Klasse ein Resultset in eine jtable zu schreiben, mit einer LinkedHashMap hat es geklapt, jedoch wirft der Vector mir immer Fehler entgegen

Hier der Code:
Quellcode
- import java.sql.*;
- import java.util.Vector;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javax.swing.table.DefaultTableModel;
- public class TableVector extends DefaultTableModel {
- Connection con;
- Statement stmt;
- ResultSet rs;
- ResultSetMetaData rsmd;
- Vector tableAll = new Vector();
- Vector rowContent = new Vector();
- int colCount;
- Vector hans = new Vector();
- public TableVector(){
- try {
- Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
- } catch (ClassNotFoundException e) {
- // TODO Automatisch erstellter Catch-Block
- e.printStackTrace();
- }
- try
- {
- String connectionUrl = "jdbc:sqlserver://dbserver:1433;"+
- "databaseName=XXXX;user=XXXX;password=XXX;";
- con = DriverManager.getConnection(connectionUrl);
- stmt = con.createStatement();
- rs = stmt.executeQuery("SELECT * FROM HM");
- rsmd = rs.getMetaData();
- colCount = rsmd.getColumnCount();
- } catch (SQLException e1) {
- // TODO Automatisch erstellter Catch-Block
- e1.printStackTrace();
- }
- try {
- while(rs.next()){
- for(int m = 0; m < colCount; m++){
- rowContent.add(rs.getString(m + 1));
- System.out.print(rs.getString(m + 1));
- }
- tableAll.addElement(rowContent);
- rowContent.clear();
- }
- } catch (SQLException e) {
- // TODO Automatisch erstellter Catch-Block
- e.printStackTrace();
- }
- }
- @Override
- public Object getValueAt(int arg0, int arg1)
- {
- try{
- hans = (Vector) tableAll.get(arg1); // Casting
- return hans.get(arg0);
- }
- catch (ArrayIndexOutOfBoundsException ex){
- return 0;
- }
- }
- @Override
- public int getColumnCount()
- {
- return colCount;
- }
- @Override
- public int getRowCount()
- {
- return 10; //testweise
- }
- }
Dieser Teil:
public Object getValueAt(int arg0, int arg1)
scheint nicht richtig zu funktionieren, obwohl der Vector die Daten enthält, wird wohl immer eine ArrayIndexOutofBound - Exception rausgehauen, so dass alle Spalten 0 sind, wegen dem return. Wenn ich kein Try und Catch ein baue kommt die Meldung halt direkt ->
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
Könnt ihr mir irgendwie helfen?
Vielen Dank