1
    import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

public class Sheet extends JFrame{
    private String[] line = {
    "wwwwwwffwwwwww",       
    "wwwwwwfffffffw",       
    "wwwwwwffwwwffw",       
    "wwwwwwffwwwffw",
    "wwwwwwfffffffw",
    "wwwwwwffwwwwww"        
    };
    String line1 = "wwwwwffwwwww";
            int tileX =50;
    int tileY= 50;
    public Sheet(){
        //setUndecorated(true);
        setVisible(true);
        setSize(400,400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //setResizable(false);
        setTitle("window");
    }
    public static void main(String[] args){
        Sheet frame = new Sheet();

    }
    public void paint(Graphics g){

        g.setColor(Color.black);
        g.drawRect(0,100,1000,1);
        for(int i = 0; i<line.length; i++){
            for(int f = 0; f<line[i].length(); f++){
                char line = line[f].charAt(i);

            }
        }
    }
}

これが私のコードです。文字列の配列に従ってタイルを描画するプログラムを作成しようとしています。このペイント方法では、2つのforループがあり、1つは行の配列インデックスを循環し、もう1つは配列の文字を循環します。このエラーが発生します:

スレッド「AWT-EventQueue-0」の例外java.lang.Error:未解決のコンパイルの問題:式の型は配列型である必要がありますが、charに解決されました

at Sheet.paint(Sheet.java:36)

誰かが私がこれを修正するのを手伝ってもらえますか?私は成功しませんでした。

どんな助けでも大歓迎です

4

1 に答える 1

3

line変数を再宣言しようとしています。変数名を変更すると、問題がないはずです。

char c = line[f].charAt(i);

これはかなりあいまいなエラーメッセージです。コンパイラcharが名前付きの型の変数を宣言していることを理解するlineまでに、初期化子を見ると、それline[f]がおかしいと思っているからです。その時点で変数にが割り当てられないという事実は、別の問題です:)

于 2012-04-06T23:03:44.223 に答える