0

ArrayList を特定の形式でテキスト ファイルに保存しようとしています。これは正しい形式ですが、ブロックの ArrayList 内の 1 つの要素の色のみを出力します。問題が getBlockColor() メソッドにあることはわかっていますが、このメソッドを実装する最良の方法は何ですか? これが私がこれまでに得たものです。

これは、フレームの ArrayList を持つクラスにあるメソッドです。

public void saveFrames(String fileName) {
    System.out.println("**method save writes data back to a file "
            + fileName);
    try {
        PrintWriter outfile = new PrintWriter(new OutputStreamWriter(
                new FileOutputStream(fileName)));
        outfile.println(frames.size());
        outfile.println(Frame.getCOLUMNS());
        for (Frame f : frames) {
            for (int i = 0; i < 20; i++) {
                for (int j = 0; j < 20; j++) {
                    Color a = f.getBlockColor();
                    if (a.equals(Color.white)) {
                        outfile.print("w");
                    }
                    if (a.equals(Color.orange)) {
                        outfile.print("o");
                    }
                    if (a.equals(Color.red)) {
                        outfile.print("r");
                    }
                    if (a.equals(Color.yellow)) {
                        outfile.print("y");
                    }
                    if (a.equals(Color.green)) {
                        outfile.print("g");
                    }
                    if (a.equals(Color.blue)) {
                        outfile.print("b");
                    }

                }
                outfile.println("");
            }
        }
        outfile.close();
    }

    catch (IOException e) {
        System.out.println("file not found try again");
    }
}

これは、ブロックの色を取得するフレームからのコードです。

public Color getBlockColor() {
    for (int ROWS = 0; ROWS < 20; ROWS++) {
        for (int COLUMNS = 0; COLUMNS < 20; COLUMNS++) {
            blockColor = blocks[ROWS][COLUMNS].getBackground();
        }
    }
    return blockColor;
}
4

1 に答える 1

0

ブロックの色を取得する際に小さな間違いを犯したと思います。次のように、特定の行と列の色を返すことになっていたと思います。

public Color getBlockColor(int row, int column) {
    return blocks[row][column].getBackground();
}
于 2013-04-14T00:03:29.533 に答える