繁体   English   中英

Java Swing JPanel。 如何绘制形状?

[英]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);
}

您可以将GraphicsGraphics2D并使用public void draw(Shape s)方法传递您拥有的所有Shape 对于任何Shape都可以使用public Rectangle getBounds()并将Rectangle传递给scrollRectToVisible。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM