我想了解更多有关Graphics以及如何使用它的信息。
我有这堂课:
public class Rectangle
{
private int x, y, length, width;
// constructor, getters and setters
public void drawItself(Graphics g)
{
g.drawRect(x, y, length, width);
}
}
这是一个非常简单的框架:
public class LittleFrame extends JFrame
{
Rectangle rec = new Rectangle(30,30,200,100);
public LittleFrame()
{
this.getContentPane().setBackground(Color.LIGHT_GRAY);
this.setSize(600,400);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new LittleFrame();
}
}
我只想将此矩形添加到LittleFrame的容器中。但我不知道该怎么做。
答案 0 :(得分:4)
我建议您创建一个扩展JPanel
的额外类,如下所示:
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JPanel;
public class GraphicsPanel extends JPanel {
private List<Rectangle> rectangles = new ArrayList<Rectangle>();
public void addRectangle(Rectangle rectangle) {
rectangles.add(rectangle);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
for (Rectangle rectangle : rectangles) {
rectangle.drawItself(g);
}
}
}
然后,在LittleFrame
课程中,您需要将此新面板添加到框架内容窗格,并将Rectangle
添加到要绘制的矩形列表中。在LittleFrame
构造函数的末尾添加:
GraphicsPanel panel = new GraphicsPanel();
panel.addRectangle(rec);
getContentPane().add(panel);