2013-05-03 34 views
-3

繼續收到這些找不到符號錯誤。我知道它涉及的圖片類和它的方法,但我知道他們在那裏,但我的編譯器無法識別它們。有任何想法嗎?發現在java中顯示問題,找不到符號錯誤

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

    public class DispTest 
    { 

     private Picture display; 
     private Graphics graphics; 

     public DispTest() 
     { 
     display = new Picture(500,500); 
     graphics = display.getGraphics(); 
     for(int x = 0; x < display.getWidth(); x++) { 
      for(int y = 0; y < display.getHeight(); y++) { 
      display.getPixel(x,y).setColor(new Color(123,204,246)); 
      if((x > 0 && x % 50 == 0) || (y > 0 && y % 50 == 0)) 
      display.getPixel(x,y).setColor(new Color(44,72,39)); 
      } 
     } 

     graphics.setColor(new Color(44,72,39)); 
      for(int x = 10; x < display.getWidth(); x += 50) 
      for(int y = 10; y < display.getHeight(); y += 50) 
       graphics.drawOval(x,y,30,30); 
      display.show(); 
     } 


     public static void main(String [] args) 
     { 
      DispTest dt = new DispTest(); 

     } 
    } 

5個錯誤:

File: C:\Users\Andrew\SoftwareDevelopment\DispTest.java [line: 22] 
Error: cannot find symbol 
    symbol: method getGraphics() 
    location: variable display of type Picture 
File: C:\Users\Andrew\SoftwareDevelopment\DispTest.java [line: 25] 
Error: cannot find symbol 
    symbol: method getPixel(int,int) 
    location: variable display of type Picture 
File: C:\Users\Andrew\SoftwareDevelopment\DispTest.java [line: 27] 
Error: cannot find symbol 
    symbol: method getPixel(int,int) 
    location: variable display of type Picture 
File: C:\Users\Andrew\SoftwareDevelopment\DispTest.java [line: 32] 
Error: cannot find symbol 
    symbol: method getWidth() 
    location: variable display of type Picture 
File: C:\Users\Andrew\SoftwareDevelopment\DispTest.java [line: 33] 
Error: cannot find symbol 
    symbol: method getHeight() 
    location: variable display of type Picture 
+1

你是什麼意思「我知道的圖片類有」?他們在哪?我認爲這是你寫的一堂課。編譯這個之前編譯過Picture.java嗎? – 2013-05-03 22:21:44

+0

我相信圖片類被包含在awt中,但並不確定。 – LongForde 2013-05-03 22:36:39

+2

檢查可用的awt類[此處](http://docs.oracle.com/javase/6/docs/api/java/awt/package-summary.html)。 – Voicu 2013-05-03 22:38:20

回答

0

刪除您.class文件,並重新編譯代碼。當您的.class文件來自舊版本的源文件時,會發生此錯誤。

+0

我刪除了他們,只有兩個錯誤。所以,當我創建一個新的圖片類顯示它不能找到圖片類,但不是包含在awt。*內? – LongForde 2013-05-03 22:33:05

+0

有一個'Image'類? – christopher 2013-05-03 22:35:17

+0

@Andrew:無論哪種方式,你都沒有進行通配符(*)導入,所以不會被選中。 – Voicu 2013-05-03 22:37:09

1

是不是Picture應該是Image類,import java.awt.Image;增加在你的課上?在這種情況下,IDE(Eclipse,Netbeans)會幫助你。

所以,你可以有:

// import 
import java.awt.Image; 
import java.awt.image.BufferedImage; 

... 

// declaration 
private Image display; 

... 

// instantiation, feel free to choose your third argument from http://docs.oracle.com/javase/6/docs/api/java/awt/image/BufferedImage.html 
display = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB); 
+0

Image類沒有_getPixel()_方法。我們所能做的就是猜測這個神奇的_Picture_類來自OP的代碼。顯然,OP沒有任何線索...... – jahroy 2013-05-03 23:42:58

+0

沒錯,但他可以使用[BufferedImage]中的'setRGB'方法(http://docs.oracle.com/javase/1.4.2/docs/api/java/ awt/image/BufferedImage.html)爲像素着色。 – Voicu 2013-05-03 23:49:53

+0

毫無疑問,他有無數的選擇......有一件事不是選擇,就是使用一個隨機類,他沒有源代碼或類文件! – jahroy 2013-05-04 00:01:51