所以我一直在這個問題上停留了一段時間,而且我非常渴望獲得幫助。請幫幫我。我有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)類,還有很多類可以幫助你在它周圍做動畫。 –