在 JFrame 或 JPanel 上使用函数绘图 java
Drawing with functions on JFrame or JPanel java
我想知道是否可以use/make一个函数在另一个Class中绘制一个image/oval然后在paint中调用publicvoid我们主要 Class.
如果我有
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
class(因为继承)。
您可能想要创建一个 Display
的实例,它会使用重写的 paint(g)
方法自动初始化 JPanel
,即 new
运算符。
作为aJPanel
returnsaJPanel
的构造函数,Displayreturnsa类型的构造函数也是JPanel
,其中包含红圈。这个 JPanel
需要用 add
方法添加到你原来的 JFrame
.
我想知道是否可以use/make一个函数在另一个Class中绘制一个image/oval然后在paint中调用publicvoid我们主要 Class.
如果我有
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
class(因为继承)。
您可能想要创建一个 Display
的实例,它会使用重写的 paint(g)
方法自动初始化 JPanel
,即 new
运算符。
作为aJPanel
returnsaJPanel
的构造函数,Displayreturnsa类型的构造函数也是JPanel
,其中包含红圈。这个 JPanel
需要用 add
方法添加到你原来的 JFrame
.