2012-04-06 4 views
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 для циклов, один для цикла через индекс массива для строк и один для циклического прохождения символов массива. Я получаю эту ошибку:тип выражения должен быть типом массива, но разрешен char

Исключение в потоке «AWT-EventQueue-0» java.lang.Error: нерешенная проблема компиляции: Тип выражения должен быть типом массива, но он решил обугливается

at Sheet.paint(Sheet.java:36) 

Пожалуйста, помогите мне исправить это? Я пробовал без успеха.

Любая помощь будет принята с благодарностью

+0

Эй, я добавил Java-тэг для вас, чтобы эксперты Java пришли. =) –

+0

Не забудьте проверить ошибки компиляции перед запуском программы. Если вы используете Eclipse, вам удобно отображать вид вкладки «Проблемы» во время разработки. Если на вкладке проблем есть какие-либо ошибки, исправьте их перед запуском. Вы сбережете себе головную боль. –

ответ

3

Вы пытаетесь переопределить переменную line. Измените имя переменного, и вы должны быть в порядке:

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

Это сообщение довольно неясная ошибка, потому что к тому времени компилятора понял, что вы объявить переменный тип char с именем line, когда он смотрит на Инициализатор видит line[f] и думает, что это безумие. Тот факт, что переменной не было присвоено значение , является еще одной проблемой:

+0

Благодарю, я не знаю, как я этого не осознавал! большая помощь! – grimrader22