繁体   English   中英

在 JFrame 或 JPanel java 上使用函数绘图

[英]Drawing with functions on JFrame or JPanel java

我想知道是否可以在另一个类中使用/制作一个函数来绘制图像/椭圆,然后在我们的主类的paint public void 中调用它。

如果我有

public class Trydraw{
    
    public void drawrcircle(Graphics g){  

        g.setColor(Color.RED);      
        g.drawOval(0, 0, 20,20);  
        g.fillOval(0,0,20,20);    

    } 
    
}

然后在这里这样称呼它

import java.awt.GridLayout; 
import javax.swing.*;
import  java.awt.*;

public class Display extends JPanel{
   public static void main(String[]haha){
        
       JFrame frame = new JFrame();  
       frame.setSize(800, 500);  
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
       frame.setVisible(true);  

   }

   public void paint(Graphics g){

       super.paint(g); 
       Trydraw l = new Trydraw();
       l.drawrcircle(g);

   }
}

感谢您未来的帮助。

是的,如果我正确地回答了您的问题,您可以。 如果我添加,您的示例代码对我有用

frame.add(new Display());

到你的尽头

public static void main(String[] haha)

方法。

使用您的代码片段, paint(g)方法将永远不会被调用,因为它将通过 JPanel 的初始化执行,该JPanel将通过Display类的初始化来初始化(因为继承)。

您可能想要创建一个Display实例,它使用重写的paint(g)方法自动初始化JPanel ,因此是new的 Operator。 由于JPanel的构造函数返回一个JPanel ,因此 Display 的构造函数也返回一个JPanel类型,其中包含红色圆圈。 JPanel需要使用add方法添加到您的原始JFrame

暂无
暂无

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

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