2014-11-04 4 views
1

Привет, я немного начинаю программировать на Java и пытаюсь выяснить, как нарисовать фигуру (овал) из другого класса в java-апплет (я уверен, что это, вероятно, простая задача)Попытка привлечь к апплету в другом классе

класс с апплетом я хочу обратить:

import java.awt.*; 
import javax.swing.JApplet; 

    public class PulsatingBalls extends JApplet{ 
private static final long serialVersionUID = 1L; 

public void init(){ 
    getContentPane().setBackground(Color.black); 
    new ball(20, 20); 
    } 
} 

и класс шара:

import java.awt.Graphics; 

public class ball extends PulsatingBalls{ 
int x; 
int y; 

public ball(int y, int x){ 
    this.x = x; 
    this.y = y; 
    repaint(); 
} 

public void paint(Graphics g){ 
    g.drawOval(x, y, 50, 50); 
    } 
} 

ответ

1

Попробуйте это:

апплета:

public class PulsatingBalls extends JApplet { 

    private static final long serialVersionUID = 1L; 

    private final List<Ball> balls     = new ArrayList<Ball>(); 

    @Override 
    public void init() { 
     getContentPane().setLayout(new BorderLayout()); 
     final JPanel jp = new JPanel() { 
      @Override 
      protected void paintComponent(final Graphics g) { 
       super.paintComponent(g); 
       g.setColor(Color.red); 
       for (final Ball b : balls) { 
        b.paint(g); 
       } 
      } 
     }; 
     jp.setBackground(Color.black); 
     getContentPane().add(jp, BorderLayout.CENTER); 
     balls.add(new Ball(20, 20)); 
    } 

} 

мяч:

public class Ball { 
    int x; 
    int y; 

    public Ball(final int y, final int x) { 
     this.x = x; 
     this.y = y; 
    } 

    public void paint(final Graphics g) { 
     g.drawOval(x, y, 50, 50); 
    } 
} 
+0

Поскольку JApplet не двойной буферизации, это не рекомендуется, чтобы переопределить его метод рисования, вместо этого, использовать JPanel и переопределить его метод paintComponent – MadProgrammer

+0

@MadProgrammer нормально , Я изменил его. – rafalopez79

+0

Хорошее редактирование ... +1 –