指示:JavaFXアプリケーションを作成する必要があります.Writeとラベルされたボタンが押されると、5つのint値1,2,3,4、および5、現在の時刻のDateオブジェクト、およびdouble値5.5を返します。 Exercise17_05.datという名前のファイルに保存します。次に、Exercise17_05.datを開いて、データを読み込んでコマンドウィンドウに表示するメソッドをプログラムに記述します。さらに、ボタンラベルReadを持っています。これを押すと、プログラムはExercise17_05.dat(書き込みによって作成された)の内容を読み込んで表示します。 TextAreaを使用して結果を表示し、テキストの色が青色で背景が灰色になるようにします。Javaファイルへのオブジェクトの保存
私は近づいているように感じていますが、「この式の対象タイプは機能 インターフェイスでなければなりません。 Javafxボックスはエラーのために開くことさえないので、私の進捗状況を本当に確認することはできません。どこで私は間違えましたか?
try(ObjectInputStream input = new ObjectInputStream(new FileInputStream("Exercise17_05.dat"));){
へ
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class module3 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws ClassNotFoundException, IOException {
// Text area
TextArea textArea = new TextArea();
textArea.setStyle("-fx-background-color: lightgrey; -fx-text-fill: blue; -fx-control-inner-background: grey");
textArea.setPadding(new Insets(15, 15, 15, 15));
Button write = new Button("Write");
write.setOnAction(e -> {
// Create an output stream for file
try(ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("Exercise17_05.dat", true))) {
int[] numbers = {1, 2, 3, 4, 5};
// Write to file
// 1. Write double
output.writeDouble(5.5);
// 2. Write int array object
output.writeObject(numbers);
// 3. Write date object
output.writeObject(new java.util.Date());
// 4. Write utf string
output.writeUTF("Exercise17_05.dat");
} catch(IOException exception) {
System.exit(0);
}
});
Button read = new Button("Read");
read.setOnAction(e -> {
//Create an input stream for file
ObjectInputStream in = new ObjectInputStream(new FileInputStream("Exercise17_05.dat"));
// Read from file
// 1. Read double
double doubleValue = input.readDouble();
textArea.appendText("Double value: " + doubleValue);
// 2. Read int array object
int[] newNumbers = (int[]) (input.readObject());
textArea.appendText("Integers: " + Arrays.toString(newNumbers));
// 3. Read date object
Date date = (java.util.Date) (input.readObject());
textArea.appendText("DateTime: " + date);
// 4. Read utf string
String fileName = input.readUTF();
} catch(IOException exception) {
System.exit(0);
}
HBox hButtons = new HBox(read, write);
VBox vProgram = new VBox(hButtons, textArea);
}
}
"読み取り"アクションのコードは、その 'catch'と一緒に' try'をしていますか? – bradimus
問題はどこで発生するのですか?投稿する前にコードを操作してください。read.setOnAction(e - > {'。 – Tom