我对此代码有一些问题...这是一个JDialogForm,其中有jTextField和按钮。当我单击按钮以在另一个窗口中使用它时,我想保存此Jtextfield中的数据,但我不知道为什么它不起作用。我总是收到Exception ek和我输入的消息。

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    String sciezka = jTextField1.getText();
    if (sciezka.length() > 0)
    {
      Zmienne_pomocnicze zp = new Zmienne_pomocnicze();
      zp.setPrzechowaj(sciezka);
       try {
       ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream("danebaza"));
       oos.writeObject(zp);

       oos.close();


   } catch(Exception ek) {
       JOptionPane.showMessageDialog(null, "Nie mozna pobrac nazwy_przedmiotu: " + ek);
     }
   }
    this.setVisible(false);
}


Zmienne_pomocnicze类看起来像这样

public class Zmienne_pomocnicze {

    public String n;


    public void setPrzechowaj (String neew){
        n = neew;

    } public String getPrzechowaj () {
        return n;
    }
}


我猜问题出在oos.writeObject(zp);但我不知道为什么。

最佳答案

您的班级Zmienne_pomocnicze不是Serializable。必须将其声明为可序列化以便将其写入对象输出流(并确保其所有数据成员也都可序列化,尽管在您的特定情况下,这是正确的)。

关于java - ObjectOutputStream .writeObject,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2938516/

10-10 03:25