2012-05-08 11 views
1

これは私の初めてのstackoverflow投稿です。ファイルを読み込み、ファイルに基づいてグラフィックスを生成するJavaでエラーを修正するのに役立つ必要があります

"blue"、 "green"、 "red"などのテキストを含むファイルを読み込んで、JFrame上でそれらが示す色である四角形を描画し、それらがテキストファイルのどこにあるかを示します。私はそれが誰かにとって理にかなっているかどうかは分かりませんが、それは私の頭の中にちょうど跳ね上がったものでした。私は「ねえ、私はこれを試してみるよ」と思っていました。

基本的に私のJFrameに最初の行に3つの正方形(赤、青、緑)があるようにしたいと思います。次に私の次の行は3つの正方形(青、緑、赤)を持っています。その後、最後に(緑、赤、青)。

最初に私のテキストファイルは次のようである:

青、緑、赤

赤、緑、青の

赤、青、緑、今私はコードを投稿します。私はエラーが何であるか100%確信していない、私は日食でそれを実行してきたとは本当に私は何をすべきかを知って有用な何かを教えていない。

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); 
} 
} 

答えて

1

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

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

+0

ああ!わぁ、ありがとう!今は少しばかげている気がする。 "String color = row.next()"は非常に役に立ち、私はそれが起こっていることを認識していませんでした。うわー、それは本当に知っていいです、何らかの理由で私は教授がその事実hahaを越えたとは思わない。どうもありがとうございます! –

関連する問題