我已经实现了一个类DrawingPane extends JPanel
来绘制一些形状。我已经为每种类型的形状创建了一个单独的方法,例如圆形对应:
public void paintCircles(Graphics g) {
super.paint(g);
但是我无法通过对类DrawingPane
的引用从另一个类调用它。如何才能做到这一点?如果不可能这样,我怎么能调用一个单独的方法来绘制每种类型的形状,因为代码要求因形状不同而不同?
此外,类JPanel
中的scrollRectToVisible方法不适用于对象RoundRectangle2D.Double
。如何使这些形状也可见?
答案 0 :(得分:3)
您需要在paintComponent(Graphics g)
中实施DrawingPane
,并且可以使用draw(Shape s)
绘制任何形状:
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.draw(yourShape);
}
答案 1 :(得分:2)
您可以将Graphics
转换为Graphics2D
并使用public void draw(Shape s)
方法传递您拥有的所有Shape
。对于任何Shape
,您可以使用public Rectangle getBounds()
并将Rectangle
传递给scrollRectToVisible。