2015-03-31 20 views
-1

我正在關注Youtube上的小程序教程。我的代碼看起來和教程完全一樣,但是後臺不會變成粉紅色,Eclipse告訴我在implements MouseListenerg2.draw(line);中有錯誤我做錯了什麼? Click here的視頻,在這裏是我的代碼:我的小程序代碼有什麼問題?

package applets1; 

import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.geom.Line2D; 
import java.awt.geom.Point2D; 

import javax.swing.JApplet; 

public class clean extends JApplet implements MouseListener{ 

public void start(){ 



} 

public void init(){ 

    setBackground(Color.pink); 
    addMouseListener(this); 

} 

public void paint(Graphics g){ 

    Graphics g2D = (Graphics2D) g; 

    g.drawString("WAZZUP", 100, 90); 
    g.drawRect(100, 100, 400, 400); 

    Point2D.Double topLeft = new Point2D.Double(0.0, 25.0); 
    Point2D.Double topRight = new Point2D.Double(100.0, 25.0); 

    Line2D.Double line = new Line2D.Double(topLeft, topRight); 

    g2D.draw(line); 

} 
} 

編輯:在g2D.draw(line);錯誤說:The method draw(Line2D.Double) is undefined for the type Graphics。我將g2D.drawLine更改爲g2D.draw 我還修復了implements排字錯誤。儘管沒有錯誤和其他一切工作,但背景仍然不是粉紅色的。我能做些什麼來修復粉紅色和g2D.draw

+0

'「......並且Eclipse告訴我有錯誤......」' - 假設你*可能*想向我們顯示錯誤消息,不是? – 2015-03-31 01:22:35

+0

更嚴肅的說明 - 不要做小程序或教程來教他們。永遠不要繪製頂層窗口的繪畫方法,你應該幾乎總是在你的覆蓋中調用超級繪畫方法。 – 2015-03-31 01:22:58

+0

如果您遇到錯誤,請在您的問題中顯示這些錯誤,因爲他們經常說明問題。另外,你在你的代碼中做了一些拼寫錯誤,例如'implements'而不是'implements'。 – Jasper 2015-03-31 01:23:22

回答

1

你有一個印刷錯誤。 implements不implemets:

public class clean extends JApplet implements MouseListener{


你還必須聲明G2D了錯誤類型(Graphics VS Graphics2D)。換句話說,而不是 Graphics g2D = (Graphics2D) g;你需要使用 Graphics2D g2D = (Graphics2D) g;

一旦你做出上述改變,你將能夠調用使用各種2D類作爲參數g2D.draw()方法。


而且你已經覆蓋了paint()方法,但您還沒有到super.paint()一個電話 - 這應該是在你的paint()方法的第一行。一旦你這樣做了背景顏色應該被正確渲染(因爲它是由基類JApplet處理的)

+1

並致電'super.paint' – MadProgrammer 2015-03-31 01:44:17

+0

@MadProgrammer好的,我會將其納入我的答案,謝謝。 – user700390 2015-04-01 21:33:13