【问题标题】:Drawing with functions on JFrame or JPanel java在 JFrame 或 JPanel java 上使用函数绘图
【发布时间】:2022-06-29 12:34:05
【问题描述】:

我想知道是否可以在另一个类中使用/制作一个函数来绘制图像/椭圆,然后在我们的主类的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);

   }
}

感谢您未来的帮助。

【问题讨论】:

    标签: java swing jframe draw paint


    【解决方案1】:

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

    frame.add(new Display());
    

    到你的结尾

    public static void main(String[] haha)
    

    方法。

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

    您可能想要创建Display 的实例,它会自动使用重写的paint(g) 方法初始化JPanel,从而使用new 运算符。 由于JPanel 的构造函数返回了JPanel,Display 的构造函数也返回了JPanel 的类型,其中包含红色圆圈。这个JPanel 需要用add 方法添加到你原来的JFrame

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2012-02-23
      相关资源
      最近更新 更多