ms 액세스 db에서 jtable로 날짜 유형을 표시하는 데 문제가 있습니다 ... 작동하지 않을 것 같아요. 코드를 수정하려고했지만 여전히 운이 좋지는 않았습니다. , 내가 여기 안녕하세요, jTable에 도움이 필요합니다.
데이터베이스에서 데이터를 내 JTable의를 채우기 위해 내 샘플 코드입니다 ... 여기 누군가가 나에게 또 다른 아이디어를 제공 할 수있는 희망 :public void PopulatejTable(){
DefaultTableModel model =(DefaultTableModel)jTable1.getModel();
jTable1.getColumnModel().getColumn(0).setPreferredWidth(35);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(200);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(100);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(150);
jTable1.getColumnModel().getColumn(4).setPreferredWidth(100);
String dbuser = "";
String dbpasswd = "";
String DriverPrefix = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\myWork2\\PersonalInfo\\db1.mdb";
String SQLString = ("select ID,Username,Password,Website from Table1 order by ID");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(Exception e){
JOptionPane.showMessageDialog(null,""+e.getMessage(),"JDBC DRIVER Error",JOptionPane.WARNING_MESSAGE);
return;
}
PreparedStatement stmt = null;
Connection con = null;
ResultSet rset = null;
try{
con = DriverManager.getConnection(DriverPrefix,dbuser,dbpasswd);
stmt = con.prepareStatement(SQLString);
}catch(Exception e){
JOptionPane.showMessageDialog(null,""+e.getMessage(),"Connection Error",JOptionPane.WARNING_MESSAGE);
}
while(model.getRowCount()>0){
model.removeRow(0);
}
try{
rset = stmt.executeQuery();
while(rset.next()){
int ID = rset.getInt(1);
String Username = rset.getString(2);
String Password = rset.getString(3);
String Website = rset.getString(4);
Date DateEncoded = rset.getDate(5);
model.addRow(new Object[]{ID,Username,Password,Website,DateEncoded});
}
rset.close();
stmt.close();
con.close();
}catch(SQLException e){
JOptionPane.showMessageDialog(null,e.getMessage(),"Communication Error",JOptionPane.WARNING_MESSAGE);
}
}
을하고이 오류가 난 얻을 수 있습니다 :
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 4 >= 4
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
at UsernamePasswordPackage.MainForm.PopulatejTable(MainForm.java:1302)
at UsernamePasswordPackage.MainForm.<init>(MainForm.java:71)
at UsernamePasswordPackage.MainForm$29.run(MainForm.java:1398)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
나를 도울 수있는 사람 덕분에 ... :) :) :)
오류가 있습니까? 그렇다면 여기에 게시하십시오 .. –
잘 모르시겠습니까? 위 코드 조각에 줄 번호 1302가 있습니까? "UsernamePasswordPackage.MainForm.PopulatejTable (MainForm.java:1302)"에서 예외가 발생 했으므로 확인하십시오. –
[Microsoft] [ODBC Microsoft Access Drivers]라는 잘못된 오류가 발생했습니다. 설명자 인덱스가 잘못되었습니다. 감사합니다. 너희들, 내 프로젝트에 많은 도움을 주었다. 많은 많은 감사 :) :) –