2012-04-06 1 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 개의 for 루프가 있는데 하나는 행의 배열 인덱스를 순환하고 다른 하나는 배열의 문자를 순환합니다. 는 식의 유형은 배열 형식이어야하지만식의 형식은 배열 형식이어야하며 문자로 해결됩니다.

at Sheet.paint(Sheet.java:36) 
를 숯불로 결심 : 해결되지 않은 컴파일 문제 :

예외 스레드에서 "AWT-EventQueue의-0"상위를 :이 오류

누군가 나를 고칠 수 있습니까? 나는 성공하지 않으려 고 노력했다.

은 어떤 도움이 크게 당신은 line 변수를 재 선언하려는

+0

안녕하세요, Java 전문가가 올 수 있도록 자바 태그를 추가했습니다. =) –

+0

프로그램을 실행하기 전에 컴파일 오류를 확인하십시오. 이클립스를 사용하고 있다면, 개발하는 동안 "Problems"탭보기를 보이게 유지하는 것이 편리하다. 문제점 탭에 오류가 있으면 실행하기 전에 해결하십시오. 너는 두통을 덜어 줄거야. –

답변

3

을 감상 할 수있다. 변수 이름을 변경하고 당신은 괜찮을한다 : 그것은 상당히 모호한 오류 메시지가 있기 때문에 그것은 본다 컴파일러의 당신 이름 line와 유형 char의 변수를 선언하고 있음을 알 시간에 의해,

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

입니다 이니셜 라이저는 line[f]을보고 그것이 이상하다고 생각합니다. 그 시점에서 변수가 에 할당되지 않는다는 사실은 또 다른 문제입니다.

+0

고맙다, 내가 어떻게 깨닫지 못했는지 모르겠다! 큰 도움! – grimrader22