Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 灭菌JTable/TableModel不工作_Java_Swing_Jtable - Fatal编程技术网

Java 灭菌JTable/TableModel不工作

Java 灭菌JTable/TableModel不工作,java,swing,jtable,Java,Swing,Jtable,我正在尝试创建一个JTable,用户可以将数据添加到其中,以便能够保存并保留数据,以便下次运行应用程序。我目前有一个JFrame类,它包含两个独立的类,它们是JPanel,并使用CardLayout在它们之间来回交换。当我将数据添加到JTable时,它会出现并且一切正常,但是当我关闭应用程序并重新运行它时,JTable是空的。下面是一些代码片段 private void saveObjects() { try { FileOutputStream outFile = n

我正在尝试创建一个JTable,用户可以将数据添加到其中,以便能够保存并保留数据,以便下次运行应用程序。我目前有一个JFrame类,它包含两个独立的类,它们是JPanel,并使用CardLayout在它们之间来回交换。当我将数据添加到JTable时,它会出现并且一切正常,但是当我关闭应用程序并重新运行它时,JTable是空的。下面是一些代码片段

 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。可能的副本