0

スタッカーの皆さん、こんにちは!ゲームの適切な保存機能を作成する際に問題が発生しています。私が抱えている主な問題は、display という名前の J テキスト領域内のすべてのデータをキャプチャすることです。ディスプレイには、ゲームでこれまでに行われた動きが反映され、ディスプレイの上部には「Togiz Kumalak へようこそ」と表示されます。

私の問題は、ゲームを保存すると、すべての行ではなく、テキストの最初の行だけがファイルに記録されることです。

例は次のとおりです。

            Welcome to Togiz Kumalak
            Player 1 Cup 1
            Player 2 Cup 3

等々。ファイルを保存すると、一番上の行だけが表示されます。

保存リスナーの現在のコードは次のとおりです。

class SaveListener implements ActionListener
 {
    String a = display.getText();

    JFileChooser myChooser= new JFileChooser();
    public void actionPerformed(ActionEvent event)
    {
        String fileName;
        myChooser.setCurrentDirectory(new File("."));
        myChooser.showSaveDialog(null);

        fileName = myChooser.getSelectedFile().getPath();

        try
        {
            OutputStream file = new FileOutputStream(fileName);
            PrintStream printStream = new PrintStream(file);
            printStream.print(a);
            printStream.close();


    /*  Version 11, 23.1.  Scroll pane and text area support when saving.  */


        }

        catch(IOException e)
        {
            System.out.println("Problem making or writing to an output stream.");
            System.out.println(e);
        }
    }
}
4

2 に答える 2

2

write(...)独自のメソッドを作成しようとする代わりに、JTextArea APIのメソッドを使用してください。

于 2014-04-30T05:24:59.620 に答える
1

..ゲームの適切な保存機能の 作成に問題がある

「適切な」という言葉 (私の強調) を考えると、ゲームを保存/ロードする適切な方法は、「テキスト行に大雑把に翻訳されたゲーム状態モデル」ではなく、「ゲーム状態モデル」に従うこと を指摘しなければなりません。

そのゲーム状態モデルは、データの複雑さに応じてさまざまな方法で保存される可能性がありますが、この方法で使用する方法とは非常に異なるシリアル化方法を使用する必要があります (コード内のデータのエンコード/デコードの作業が少なくて済みます)。

于 2014-04-30T06:43:51.457 に答える