所以我一直在这个问题上停留了一段时间,而且我非常渴望获得帮助。请帮帮我。我有3个类:在Java GUI中创建实例的画圆
圆形只是假设在由Frame创建的框架中随机起始位置(并定义半径)绘制一个圆。
框架是addCircle(),bounce(),start(),stop(),run()(移动圆圈)和quit()方法的主类。这个类还创建了圆圈添加到的框架。
Interfa只是现在一个界面框架,我定义了半径,圆圈数量和框架大小。
无论我怎么努力,我不能添加两个以上的圆(一个是彩色的,一个是不是):
的“递归的方式”:
private static void addCircle(int n){
Circle[] circles = new Circle[n+10];
if (n > 0){
circles[circleAdd] = new Circle();
frame.add(circles[circleAdd]);
circleAdd = circleAdd + 1;
addCircle(n-1);
}
}
普通itterative方式
private static void addCircles(int n){
ArrayList<Circle> circles = new ArrayList<Circle>();
for(int i = 0; i<=n;i++){
circles.add(new Circle());
frame.add(circles.get(i));
}
}
这就是我如何创建我的框架:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public Class Frame{
private static JFrame frame;
private static int circleAdd = 0;
private static JPanel fra;
public static void mainFrame(){
frame = new JFrame();
frame.setSize(500,500);
frame.setVisible(true);
fra = new JPanel();
frame.add(fra);
...
//addCircle and addCircles
...
public static void main..
}
}
这是我的圈子:
import java.awt.*;
import javax.swing.*;
import java.util.Random;
public class Circle extends JPanel{
private Random random = new Random();
public void paint(Graphics g){
int randX = random.nextInt(250)+50;
int randY = random.nextInt(250)+50;
g.drawOval(randX,randY,50,50);
g.setColor(Color.ORANGE);
g.fillOval(100,100,50,50);
}
}
我认为您使用的是错误的gui框架。您应该切换到Swing的继任者[JavaFX](https://docs.oracle.com/javase/8/javafx/get-started-tutorial/index.html)。你会在那里找到['Circle'](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/shape/Circle.html)类,还有很多类可以帮助你在它周围做动画。 –