撤回对象的问题(JFrame)

时间:2013-11-12 14:15:49

标签: java awt

我的代码遇到了一个小问题:

import javax.swing.JFrame;

public class Game {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //frame.setVisible(true);
        for (int i = 0; i < 5000; i++) {
            frame.getContentPane().add(new Star());
            frame.setVisible(true);
            //Thread.sleep(500);
            frame.repaint();
        }

    }
}

第二节课:

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

public class Star extends JPanel {
    private static final long serialVersionUID = 1L;

    private int x, y, red, green, blue;

    public Star() {
        x = (int) (Math.random() * 4500);
        y = (int) (Math.random() * 4500);

        red = (int) (Math.random() * 255);
        green = (int) (Math.random() * 255);
        blue = (int) (Math.random() * 255);

    }

    public void paintComponent(Graphics g) {
        Color startColor = new Color(red, green, blue);
        g.setColor(startColor);
        g.setColor(Color.GREEN);
        g.fillOval(x, y, 50, 50);

    }
}

头号问题: 代码工作得非常慢......正如你所看到的,代码会随机带来很多圈子。但它太慢了......是不是可以加速呢?

问题二:

在这段代码中:

public void paintComponent(Graphics g) {
        Color startColor = new Color(red, green, blue);
        g.setColor(startColor);
        g.setColor(Color.GREEN);
        g.fillOval(x, y, 50, 50);

    }

我添加以下几行:

g.setColor(Color.BLACK);
        g.fillRect(0, 0, getWidth(), getHeight());

JFrame背景是黑色的,但没有看到圆圈。他们似乎已经消失了..) 帮助他们回来。

提前感谢您对我的帮助!

0 个答案:

没有答案