【发布时间】:2012-02-01 22:24:16
【问题描述】:
我已使用 ResultSet 通过 (JTextLabels EDIT: JTextFields) 接受各种类型的数据输入(整数、双精度、字符串和日期)到我的嵌入式 JDBC 数据库,并且我在摇摆的 JTable 中显示结果使用我的自定义 AbstractTableModel。以下是我的代码中的 sn-ps,我认为问题可能出在哪里,但我不确定;
public void connectToDB()
{
try
{
connection = DriverManager.getConnection(DBURL, DBUSERNAME, DBPASSWORD);
statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
connectedToDB = true;
}
catch (SQLException sqlEx)
{
sqlEx.printStackTrace();
}
}
//Overrides AbstractTableModel's getValueAt() method
public Object getValueAt(int row, int column) throws IllegalStateException
{
connectToDB();
if (connectedToDB == false)
throw new IllegalStateException ("Not Connected To database");
else
{
try
{
if ( resultSet.next() == true )
{
resultSet.absolute( row + 1 );
return resultSet.getObject( column + 1 );
}
}
catch (SQLException sqlEx)
{
sqlEx.printStackTrace();
}
}
return "";// returns an empty string Object in case an error occurs above
}
看起来好像在 getValueAt() 方法周围的某个地方,它会生成以下异常,但即使是堆栈跟踪也没有指向我的代码的任何部分;
线程“AWT-EventQueue-0”中的异常 java.lang.IllegalArgumentException:无法将给定的对象格式化为数字 在 java.text.DecimalFormat.format(DecimalFormat.java:487) 在 java.text.Format.format(Format.java:140) 在 javax.swing.JTable$DoubleRenderer.setValue(JTable.java:5315) 在 javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(DefaultTableCellRenderer.java:223) 在 javax.swing.JTable.prepareRenderer(JTable.java:5683) 在 javax.swing.JTable.getToolTipText(JTable.java:3328) ………… *其他省略了4个简洁* …………我不知道为什么。
【问题讨论】:
-
什么是
JTextLabel?我在 Java 7 的 J2SE class listing 中看不到它。 -
Lolz...cldnt 帮助但在什么之后发表评论?(一年?)lmao!匆忙中出现令人讨厌的打字错误......我实际上是指JTextField,myBad!