1

stackoverflow に投稿するのはこれが初めてなので、ご容赦ください。

「青」、「緑」、「赤」などのテキストを含むファイルを読み取り、それらが示す色の正方形をJFrameに描画し、それらがどこにあるかに基づいてJavaでプログラムを作成することにしましたテキストファイルで。それが誰かにとって意味があるかどうかはわかりませんが、それが頭に浮かんだだけで、「ねえ、これを試してみよう」と思いました。

基本的に、JFrame の最初の行に 3 つの正方形 (赤、青、緑) を配置したいと考えています。次に、次の行には 3 つの正方形 (青、緑、赤) があります。次に最後 (緑、赤、青)。

最初に私のテキストファイルは次のようになります:

赤青緑

青緑赤

緑赤青

そして今、私はコードを投稿します。エラーが何であるかは100%わかりません。Eclipseで実行してきましたが、何をすべきか知っている有用なことは何も教えてくれませんでした。

import java.util.*;
import java.awt.*;
import java.io.File;
import javax.swing.*;

public class Test extends JFrame { 
    int currentY = 0;
    int currentX = 0;
    static Scanner squares;
    private final static Graphics graphics = null;

    Test(Graphics graphics) {
    this.setVisible(true);
    this.setSize(400, 400);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    while (squares.hasNextLine()) {
        Scanner row = new Scanner(squares.nextLine());
        while (row.hasNext()) {
            System.out.println(row.next());
            if (row.next().equals("green")) {
                graphics.setColor(Color.GREEN);
            }
            else if (row.next().equals("red")) {
                graphics.setColor(Color.RED);
            }
            else {
                graphics.setColor(Color.BLUE);
            }
            graphics.fillRect(currentX,  currentY, 20, 20);
            currentX += 20;
        }
        currentY += 20;
    }

}
public static void main(String[] args) throws Exception {
    squares = new Scanner(new File ("C:/Test/data.txt"));
    Test test = new Test(graphics);
}
}
4

1 に答える 1

1

あなたの主な問題は、グラフィックがヌルであるということだと思います。次に悪い問題は、スキャナーでnext()を呼び出すたびに、前の文字列が食べられることです。代わりに、String color = row.next()のようなものを使用し、ループの残りの部分で「color」を使用します。

ここでいくつかのアイデアを得ることができます:http ://content.gpwiki.org/index.php/Java:Tutorials:Graphics

于 2012-05-08T03:44:04.717 に答える