S
Sasku
Gast
Hallo zusammen,
ich habe mit JavaFx angefangen und somit auch die Properties .. jetzt versuche ich die mit meinem Programm zu speichern ( serialisieren ).
Das ist die Klasse die Serialisiert werden sollte.
und hier kommt die Main Klasse mit der start Methode
So wenn ich das jetzt ausführe kommt das als Exception:
"java.io.NotSerializableException: javafx.beans.property.SimpleDoubleProperty"
Weis jemand wie ich das machen kann?
ich habe mit JavaFx angefangen und somit auch die Properties .. jetzt versuche ich die mit meinem Programm zu speichern ( serialisieren ).
Code:
package application;
import java.io.Serializable;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
public class Test implements Serializable{
DoubleProperty doub = new SimpleDoubleProperty();
public double getDoub() {
return doub.get();
}
public void setDoub(Double doub) {
this.doub.set(doub);
}
public DoubleProperty doubleProperty(){
return doub;
}
}
Das ist die Klasse die Serialisiert werden sollte.
und hier kommt die Main Klasse mit der start Methode
Code:
public class Main extends Application implements Serializable{
FileChooser fch;
FileOutputStream fs;
ObjectInputStream ois;
ObjectOutputStream os;
Object es ;
File f;
test eins;
MenuItem open, save;
Menu dateiMen;
MenuBar mb;
@Override
public void start(Stage stage) {
try {
BorderPane root = new BorderPane();
open = new MenuItem("Öffnen");
save = new MenuItem("Speichern unter...");
dateiMen = new Menu("Datei");
mb = new MenuBar();
dateiMen.getItems().addAll(save, open);
mb.getMenus().add(dateiMen);
open.setOnAction(e -> {
fch = new FileChooser();
f = fch.showOpenDialog(stage);
System.out.println(f.getAbsolutePath());
try {
FileInputStream fis = new FileInputStream(f.getAbsolutePath());
ois = new ObjectInputStream(fis);
es = ois.readObject();
eins = (test) es;
ois.close();
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println(eins.getDoub());
});
save.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
eins = new test();
fch = new FileChooser();
eins.setDoub(32.0);
f = fch.showSaveDialog(stage);
if ( f != null)
try {
fs = new FileOutputStream(f.getAbsolutePath());
os = new ObjectOutputStream(fs);
os.writeObject(eins);
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
root.setTop(mb);
Scene scene = new Scene(root,400,400);
stage.setScene(scene);
stage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
So wenn ich das jetzt ausführe kommt das als Exception:
"java.io.NotSerializableException: javafx.beans.property.SimpleDoubleProperty"
Weis jemand wie ich das machen kann?