Java 在画布上绘制而不扩展它?
为了在JFrame中绘制图像和/或形状,我使用了一种非常常用的方法 我使用一个扩展canvss的类,创建自己的自定义JFrame对象,然后添加自己的类(扩展camvas)。然后,我重写“paint”方法以便在画布上绘制 基本上,以下是一个示例: 整个过程都很完美,但我想知道是否有一种方法可以在jframe(最好是画布)上绘制,而不必扩展canvas类 谢谢Java 在画布上绘制而不扩展它?,java,canvas,frame,Java,Canvas,Frame,为了在JFrame中绘制图像和/或形状,我使用了一种非常常用的方法 我使用一个扩展canvss的类,创建自己的自定义JFrame对象,然后添加自己的类(扩展camvas)。然后,我重写“paint”方法以便在画布上绘制 基本上,以下是一个示例: 整个过程都很完美,但我想知道是否有一种方法可以在jframe(最好是画布)上绘制,而不必扩展canvas类 谢谢 Jake尝试使用JPanel并覆盖用于自定义绘制的paintComponent()方法 不要忘记在重写方法中调用super.paintCo
Jake尝试使用
JPanel
并覆盖用于自定义绘制的paintComponent()
方法
- 不要忘记在重写方法中调用
super.paintComponent(g)
- 不要直接在
本身上绘制,而是在JFrame
上绘制,然后将其添加到JPanel
JFrame
JPanel panel = new JPanel() {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
//your custom drawing here
}
};
切勿直接在
JFrame
本身上绘制。取而代之的是在JPanel
上画图,然后将其添加到JFrame
中,你能给我举个例子吗?我是否需要扩展一个类(以及重写和方法)?不,不是真的-或者更深入,不是一个能够很好地与Swing的被动渲染模型一起工作的类