Java 正在尝试绘制到另一个类中的小程序

Java 正在尝试绘制到另一个类中的小程序,java,swing,applet,japplet,Java,Swing,Applet,Japplet,您好,我是一个java编程的初学者,我正在尝试找出如何从另一个类到java小程序绘制一个形状(椭圆形)(我相信这可能是一个简单的问题) 包含要绘制到的小程序的类: import java.awt.*; import javax.swing.JApplet; public class PulsatingBalls extends JApplet{ private static final long serialVersionUID = 1L; public void init(){

您好,我是一个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);
    }
}
试试这个:

小程序:

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));
    }

}

由于JApplet不是双缓冲的,因此不建议重写它的paint方法,而是使用JPanel并重写它的paintComponentmethod@MadProgrammer好的,我改了。
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);
    }
}