【发布时间】:2016-09-14 01:10:36
【问题描述】:
我想学习在java中使用ArrayList和图形元素。
我有一个类可以创建具有随机 x 和随机 y 位置的正方形:
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
public class Square extends Canvas {
public int x, y;
Random r = new Random();
public void paint(Graphics g) {
x = r.nextInt(640);
y = r.nextInt(480);
g.setColor(Color.BLACK);
g.fillRect(x, y, 30, 30);
}
}
我有一个类可以创建 JFrame 并将方形元素添加到 ArrayList。但我无法弄清楚。我认为解决方案可能简单且技术性强,我只需要稍微推动一下即可。
import java.util.ArrayList;
import javax.swing.JFrame;
public class Frame {
public int width, height;
public String title;
public JFrame jframe;
ArrayList<Square> squares = new ArrayList<Square>();
public Frame(String title, int width, int height) {
this.width = width;
this.height = height;
this.title = title;
display();
}
public void display() {
jframe = new JFrame();
jframe.setTitle(title);
jframe.setSize(width, height);
jframe.setResizable(false);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
jframe.setLocationRelativeTo(null);
for(int i = 0; i < 20; i++) {
squares.add(new Square());
}
jframe.add(squares);
}
}
【问题讨论】:
-
您的问题需要更多信息。想不通怎么办?您是否收到编译时或运行时错误?如果是这样,是什么?您是否遇到意外行为?如果是这样,您期望会发生什么?究竟发生了什么?等等
-
到底是什么问题?这是否编译(怀疑 - 鉴于没有
JFrame.add(List)方法)?此外,建议使用lightweight components,例如JPanel,而不是Canvas。