Hilfe Bitte was mache ich falsch in meinem Model?

kokoriko

Mitglied
Hallo an Alle ich finde bislang keine Antwort und seit lange...
Ich habe folgendes Problem ich bekomme alles von der Datenbank nur ein Model einzusetzen, damit ich Daten in der Jtable in meinem JtabbedPane darstellen kann ist bislang eine Hölle für mich .
was ist denn Falsch in dem Model ich bekommen keinen Fehler aber ich kriege auch keine Daten in meinem JTable..
wer kann mir helfen?




DefaultTableModel Model =new DefaultTableModel();

private JTable getJTable() {
if (jTable == null) {
jTable = new JTable(Model);
}
return jTable;
}
public void connect()
{
Connection con = null;
ResultSet rs = null;
String StrSql = "";

final String dbDriverClass = "sun.jdbc.odbc.JdbcOdbcDriver";

try {

Thread
.currentThread()
.getContextClassLoader()
.loadClass(dbDriverClass)
.newInstance();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


info("Verbindung zu der Datenbank");
try {

final String dbURL =
"jdbc:eek:dbc: DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" + dbPath;
con = DriverManager.getConnection(dbURL,dbUser,dbpasswd);
} catch (SQLException e) {
infohalten("Verbindung zu der Datenbank unmöglich");
}


info("Sql : Abfrage ");
StrSql = "select * from bradygirls";

try {
Statement stmt = con.createStatement();
rs = stmt.executeQuery(StrSql);
} catch (SQLException e) {
infohalten("Problem aufgetaucht die Abfrage kann nicht ausgeführt werden");
}

info("Daten ducrhlaufen");
ResultSetMetaData rsmd = null;
int clmCnt=-1;

try {
rsmd = rs.getMetaData();
clmCnt = rsmd.getColumnCount();
Object[] clmHeaders=new Object[clmCnt];
for(int i=1;i<clmCnt; i++){
clmHeaders[i-1]=rsmd.getColumnName(i);
Model.addColumn(clmHeaders);
System.out.print(rsmd.getColumnName(i) + " ");

}
//boolean BLweiter = rs.next();

while (rs.next()) {
Vector row=new Vector();
for (int i = 1; i <= clmCnt; i++) {

row.addElement(rs.getString(i));
// System.out.print(rs.getString(i) + " ");
System.out.println();
}
Model.addRow(row);

}// ende while



} catch (SQLException e) {
infohalten(e.getMessage());
}

info("Ende des Programms");
System.exit(0);
}
 
hallo,

So was ich sehe, hast du das MVC-Pattern nicht angewandt und das App-Model von der View abhänging gemacht (Pfui!!). Ich rate dir solche Sachen immer mit dem MVC-Pattern zu lösen. Wenn du Fragen hast, wie du das MVC-Pattern in diesem Fall umsetzen kannst, dann frage mich einfach.
 
Benutze doch bitte die Code-Tags einfach ein
[ java] davor und ein [ /java] dahinter, dann sind alle Formatierungen vorhanden und mann kann es besser lesen!
Java:
 davor und ein
 
Hier habe ich mein Model implementiert und läuft alles gut . ich möchte das Model in der Klasse weiter unten um die Daten in Jtable der JTabbedPane anzuzeigen.. aber läuft nicht
wie kann ich das Model hier verwenden ?

Java:
public class ResultSetTableModel extends AbstractTableModel{
      
      private ResultSet resultSet;
      private int rowCount;
      private int columnCount;    
      private ArrayList data=new ArrayList();
      public ResultSetTableModel(ResultSet resultSet) 
          throws Exception
      {
          setResultSet(resultSet);
      }
      public void setResultSet(ResultSet resultSet)
          throws Exception
     {
          this.resultSet=resultSet;            
         ResultSetMetaData metaData=resultSet.getMetaData();
         rowCount=0;
          columnCount=metaData.getColumnCount();
          while(resultSet.next()){
              Object[] row=new Object[columnCount];
              for(int j=0;j<columnCount;j++){
                  row[j]=resultSet.getObject(j+1);                
              }
              data.add(row);
              rowCount++;
          }
      }
      public int getColumnCount(){
          return columnCount;
      }        
      public int getRowCount(){
          return rowCount;
      }        
      public Object getValueAt(int rowIndex, int columnIndex){
          Object[] row=(Object[]) data.get(rowIndex);
          return row[columnIndex];
      }
      public String getColumnName(int columnIndex){
          try{
              ResultSetMetaData metaData=resultSet.getMetaData();
              return metaData.getColumnName(columnIndex+1);
          }catch(Exception e){
              e.printStackTrace();
              return "";
          }
      }

' Hier ist die Klasse


Java:
public class JdbcSwingTable extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JPanel jPanel = null;

	private JTabbedPane jTabbedPane = null;

	private JTable jTable = null;
		
	/**
	 * This is the default constructor
	 */
	public JdbcSwingTable() {
		super();
		initialize();
		
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
				
		this.setSize(700, 300);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(getJPanel(), BorderLayout.CENTER);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.fill = GridBagConstraints.BOTH;
			gridBagConstraints.gridy = 0;
			gridBagConstraints.weightx = 1.0;
			gridBagConstraints.weighty = 1.0;
			gridBagConstraints.gridx = 0;
			jPanel = new JPanel();
			jPanel.setLayout(new GridBagLayout());
			jPanel.setBorder(BorderFactory.createTitledBorder(null, "INPUT", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Dialog", Font.PLAIN, 12), new Color(51, 51, 51)));
			jPanel.add(getJTabbedPane(), gridBagConstraints);
		}
		return jPanel;
	}

	/**
	 * This method initializes jTabbedPane	
	 * 	
	 * @return javax.swing.JTabbedPane	
	 */
	private JTabbedPane getJTabbedPane() {
		if (jTabbedPane == null) {
			jTabbedPane = new JTabbedPane();
			jTabbedPane.setBackground(new Color(51, 255, 204));
			jTabbedPane.addTab("Tabelle1", null, getJTable(), null);
		}
		return jTabbedPane;
	}

	/**
	 * This method initializes jTable	
	 * 	
	 * @return javax.swing.JTable	
	 */
	private JTable getJTable() {
		if (jTable == null) {
			jTable = new JTable();
		}
		return jTable;
	}
' alles oben ist von automatisch generiert worden

public void connect()  'hier schreibe ich selbst den codethrows Exception
{
	
	String driverClass="sun.jdbc.odbc.JdbcOdbcDriver";     
    Class.forName(driverClass);   
    String dbPath = "H:/JC/DATENBANKFONDS.mdb";
   // String url="jdbc:odbc:mydatasource";   
    String url="jdbc:odbc: DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" + dbPath;
    String username="";
    String password="";
    Connection connection = DriverManager.getConnection(url,username,password);
    System.out.println("Connected to database");                
    String sql="select * from Stammdaten";
    Statement stmt=connection.createStatement();
    ResultSet rs=stmt.executeQuery(sql);
    ResultSetTableModel model=new ResultSetTableModel(rs);
    JTable jTable=new JTable(model);
		
}


}
 

Neue Beiträge

Zurück