Java 灭菌JTable/TableModel不工作
我正在尝试创建一个JTable,用户可以将数据添加到其中,以便能够保存并保留数据,以便下次运行应用程序。我目前有一个JFrame类,它包含两个独立的类,它们是JPanel,并使用CardLayout在它们之间来回交换。当我将数据添加到JTable时,它会出现并且一切正常,但是当我关闭应用程序并重新运行它时,JTable是空的。下面是一些代码片段Java 灭菌JTable/TableModel不工作,java,swing,jtable,Java,Swing,Jtable,我正在尝试创建一个JTable,用户可以将数据添加到其中,以便能够保存并保留数据,以便下次运行应用程序。我目前有一个JFrame类,它包含两个独立的类,它们是JPanel,并使用CardLayout在它们之间来回交换。当我将数据添加到JTable时,它会出现并且一切正常,但是当我关闭应用程序并重新运行它时,JTable是空的。下面是一些代码片段 private void saveObjects() { try { FileOutputStream outFile = n
private void saveObjects() {
try {
FileOutputStream outFile = new FileOutputStream(FILE_NAME_FOR_DATABASE);
ObjectOutputStream outputStream = new ObjectOutputStream(outFile);
outputStream.writeObject(theDatabase);
outputStream.close();
} catch (IOException ioe) {
String message = "Error writing object s to disk: " + "\n" + ioe
+ "\nHope you had data backed up...";
JOptionPane.showMessageDialog(null, message);
}
} // end saveObjects
@SuppressWarnings("unchecked")
private void readObjects() {
try {
FileInputStream inFile = new FileInputStream(FILE_NAME_FOR_DATABASE);
ObjectInputStream inputStream = new ObjectInputStream(inFile);
theDatabase.set((Database) inputStream.readObject());
inputStream.close();
history.setModel(historyTableModel);
history.revalidate();
cardLayout.show(contentPanel, "3");
} catch (Exception e) {
}
}//end readObjects
private class RefreshList implements AncestorListener{
@Override
public void ancestorAdded(AncestorEvent arg0) {
//later figure out how to just add new Games
history.setModel(historyTableModel); //set arraylist to tablemodel tablemodel to jist
history.revalidate();
}
刷新列表侦听器位于包含JTable的JPanel中,而其他两个侦听器位于JFrame类中。在JTable信息中有什么我没有读到的吗?为了更快地获得更好的帮助,请发布一篇文章。可能只有我一个人,但是对象序列化与对象的长期存储相关的许多问题有关。更好的解决方案是使用JAXB或编写自己的文件格式-imhot这看起来可疑:
theDatabase.set((Database)inputStream.readObject())代码>。它不应该是数据库=(数据库)inputStream.readObject()吗代码>?另外,永远不要静默地捕捉异常。始终放置日志、系统错误或任何其他允许您追溯问题的内容(e.printStackTrace()
)。否则,按照Andrew的建议发布SSCCE。可能的副本