简体   繁体   English

ObjectOutputStream .writeObject

[英]ObjectOutputStream .writeObject

i have some problems with this code... This is a JDialogForm in which I have jTextField and button. 我对此代码有一些问题...这是一个JDialogForm,其中有jTextField和按钮。 I want to save data from this Jtextfield when i click button to use it in another window but i don't know why it doesn't work. 当我单击按钮在另一个窗口中使用它时,我想保存此Jtextfield中的数据,但我不知道为什么它不起作用。 I always get Exception ek and the message i have put there. 我总是收到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);
}                    

where class Zmienne_pomocnicze looks like this Zmienne_pomocnicze类看起来像这样

public class Zmienne_pomocnicze {

    public String n;


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

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

i guess the problem is with oos.writeObject(zp); 我猜问题出在oos.writeObject(zp); but i don't know why. 但我不知道为什么。

Your class Zmienne_pomocnicze is not Serializable . 您的类Zmienne_pomocnicze不可序列化 You must declare it serializable in order to write it into an object output stream (and make sure all its data members are serializable as well, though in your particular case this is true). 必须将其声明为可序列化以便将其写入对象输出流(并确保其所有数据成员也都可序列化,尽管在您的特殊情况下,这是正确的)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM