Я пишу <Edge>
объекты в файл, как этогоJavaFX ObjectInputStream цвет остается нулевой
ObjectOutputStream objectOutputStream = new ObjectOutputStream(
new FileOutputStream("Object" + level + ".txt"));
edgeList = koch.getEdgeList();
for (Edge e : edgeList) {
objectOutputStream.writeObject(e);
}
Грань содержит Цвет:
import java.io.Serializable;
import javafx.scene.paint.Color;
public class Edge implements Serializable {
public double X1, Y1, X2, Y2;
transient public Color color;
public Edge(double X1, double Y1, double X2, double Y2, Color color) {
this.X1 = X1;
this.Y1 = Y1;
this.X2 = X2;
this.Y2 = Y2;
this.color = color;
}
}
Я использую JavaFX и не могу изменить это. Я сделал переходный режим цвета, потому что это вызовет проблемы с Serializable, если я этого не сделаю.
Теперь я прочитал Объектный_файл так:
FileInputStream streamIn = new FileInputStream("Object" + level + ".txt");
ObjectInputStream objectinputstream = new ObjectInputStream(streamIn);
int teller = 0;
try {
for (teller = 0; teller < i; teller++) {
Edge edge = (Edge) objectinputstream.readObject();
EdgeList.add(edge);
}
} catch (OptionalDataException e) {
if (!e.eof) {
throw e;
}
} finally {
objectinputstream.close();
}
Проблема у меня есть сейчас, что, когда я прочитал объект Грань из файла, координаты (X1, Y1, X2, Y2) зачитывает отлично. Но цвет NULL, это не вызывает ошибки, но просто не отображает цвет нарисованной линии. Поэтому у меня нет кода ошибки. Я должен вручную установить цвет, но я должен получить цвет из объектного файла.