2015-03-31 2 views
-1

Я следую учебнику по апплетам на Youtube. Мой код выглядит точно так же, как и в учебнике, но фон не становится розовым, а Eclipse сообщает мне, что есть ошибки в implements MouseListener и g2.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); 

} 
} 

EDIT: Ошибка при g2D.draw(line); говорит The method draw(Line2D.Double) is undefined for the type Graphics. Я изменил g2D.drawLine на g2D.draw Я также исправил implements опечатку. Фон все еще не розовый, несмотря на отсутствие ошибки, и все остальное работает. Что я могу сделать, чтобы исправить розовость и g2D.draw?

+0

'' ... и Eclipse говорит мне, что есть ошибки в ... "' - предположим, что вы * возможно * хотите показать нам сообщения об ошибках, нет? –

+0

И на более серьезной ноте - не делайте апплетов или обучающих программ, которые их учат. И никогда не рисуйте метод краски верхнего уровня окна, и вы почти всегда должны называть метод супермашины внутри вашего переопределения. –

+0

Если вы получаете ошибки, пожалуйста, покажите их в своем вопросе, так как они часто объясняют проблему. Кроме того, вы сделали некоторые опечатки в своем коде, например 'implemets' вместо' tools '. – Jasper

ответ

1

У вас есть типографская ошибка. не implements implemets:

public class clean extends JApplet implements MouseListener{


Также вы объявили g2d с неправильным типом (Graphics против Graphics2D). Другими словами, вместо того, чтобы Graphics g2D = (Graphics2D) g; вам нужно использовать Graphics2D g2D = (Graphics2D) g;

После того, как вы сделаете выше изменения, вы будете иметь возможность ссылаться на g2D.draw() методы с использованием различных 2D-классов в качестве параметров.


Также вы переопределить метод paint(), но вы не включили вызов super.paint() - это должно быть первая строка в вашем методе paint(). После этого цвет фона должен отображаться правильно (потому что он обрабатывается базовым классом, JApplet)

+1

И позвоните 'super.paint' – MadProgrammer

+0

@MadProgrammer Хороший улов, я включу это в свой ответ, спасибо. – user700390

Смежные вопросы