私は組み込みJDBCデータベースに対して、ResultSetを使用して(JTextLabels EDIT:JTextFields)さまざまなタイプのデータ入力(整数、倍精度、文字列と日付)を受け入れました。私はカスタムAbstractTableModelを使用してスイングJTableで結果を表示しています。以下は私のコードからの抜粋です。どこに問題があるかもしれないと思っていますが、わかりません。 、それは次の例外を生成しますが、それでもスタックトレースdoesntのは、私のコードの任意の部分に私を指すsomwhere getValueAt()メソッドの周りにいるかのようにメソッドのgetValueAt()は、 "java.lang.IllegalArgumentException:指定されたObjectを数値としてフォーマットできません"を返します。どうして?
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
}
は、それは見えます。
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number at java.text.DecimalFormat.format(DecimalFormat.java:487) at java.text.Format.format(Format.java:140) at javax.swing.JTable$DoubleRenderer.setValue(JTable.java:5315) at javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(DefaultTableCellRenderer.java:223) at javax.swing.JTable.prepareRenderer(JTable.java:5683) at javax.swing.JTable.getToolTipText(JTable.java:3328) ............ *Others ommitted 4 brevity* ............
私はその理由を知りません。
「JTextLabel」とは何ですか?私はJava 7のJ2SE [class listing](http://docs.oracle.com/javase/7/docs/api/allclasses-frame.html)には表示されません。 –
Lolz ... cldnt help何の後ろにコメントする?(1年?)lmao!急いで厄介な入力ミス...私は実際には、JTextField、myBadを意味しました! – CodeBurner