[英]Java Swing JPanel. How do I paint shapes?
我实现了一个DrawingPane extends JPanel
类,它DrawingPane extends JPanel
以绘制一些形状。 我为每种形状创建了一个单独的方法,例如对应于圆形:
public void paintCircles(Graphics g) {
super.paint(g);
但是,我无法通过对类DrawingPane
的引用从另一个类中调用它。 如何才能做到这一点? 如果这种方式无法实现,那么由于不同形状的代码要求不同,我该如何调用单个方法来绘制每种类型的形状?
此外,类JPanel
的方法scrollRectToVisible不适用于对象RoundRectangle2D.Double
。 如何使这些形状也可见?
您需要在DrawingPane
实现paintComponent(Graphics g)
,并且可以使用draw(Shape s)
绘制任何形状:
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.draw(yourShape);
}
您可以将Graphics
为Graphics2D
并使用public void draw(Shape s)
方法传递您拥有的所有Shape
。 对于任何Shape
都可以使用public Rectangle getBounds()
并将Rectangle
传递给scrollRectToVisible。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.