【发布时间】:2011-09-27 15:36:56
【问题描述】:
我有一个扩展 JPanel 并绘制三角形的类。我从其他类调用它来创建三个三角形,但是当绘制第三个三角形时,前两个消失了。如何添加多个一起显示的三角形。 代码如下:
Triangle.Java:
public class Triangle extends JPanel{
Point p1, p2, p3;
public Triangle(Point _p1, Point _p2, Point _p3)
{
this.p1=_p1;
this.p2=_p2;
this.p3=_p3;
}
public void paint(Graphics g)
{
super.paint(g);
int[] xs = {p1.x,p2.x,p3.x};
int[] ys = {p1.y,p2.y,p3.y};
Polygon triangle = new Polygon(xs, ys, xs.length);
g.fillPolygon(triangle);
}
}
SwingApplication.java:
public class SwingApplication {
public static void main(String[] args) {
Triangle triangle1=new Triangle(new Point(120,10), new Point(170,110),new Point(220,10));
Triangle triangle2=new Triangle(new Point(120,210), new Point(170,110), new Point(220,210));
Triangle triangle3=new Triangle(new Point(10,400), new Point(170,210), new Point(320,400));
JFrame frame = new JFrame("Swing Application - Question 2");
//frame.setLayout(new FlowLayout());
frame.getContentPane().add(triangle1);
frame.getContentPane().add(triangle2);
frame.getContentPane().add(triangle3);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 450);
//frame.pack();
frame.setVisible(true);
}
}
【问题讨论】: