Java 画布在AWT中有什么用途?
我已经搜索了很多资料,但仍然找不到一个像样的解释。我为什么要使用它,它的目的是什么,为什么它不同于JPanels等等 根据我的理解,Java 画布在AWT中有什么用途?,java,swing,jpanel,awt,java-2d,Java,Swing,Jpanel,Awt,Java 2d,我已经搜索了很多资料,但仍然找不到一个像样的解释。我为什么要使用它,它的目的是什么,为什么它不同于JPanels等等 根据我的理解,Canvas只是Swing JComponent的AWT版本。你不应该直接使用它,除非你是在制作一个纯AWT应用 Canvas的特点是,与Window一样,它可以提供定制的硬件加速双缓冲和页面翻转。看 画布基本上是用来画画的。它还像一个面板,用于创建自定义的基于AWT的组件,但与面板不同,它不能包含其他组件 public class Canvas extends C
Canvas
只是Swing JComponent的AWT版本。你不应该直接使用它,除非你是在制作一个纯AWT应用 Canvas的特点是,与Window一样,它可以提供定制的硬件加速双缓冲和页面翻转。看
画布基本上是用来画画的。它还像一个面板,用于创建自定义的基于AWT的组件,但与面板不同,它不能包含其他组件
public class Canvas
extends Component
implements Accessible
画布组件表示屏幕的一个空白矩形区域,应用程序可以在该区域上绘制,或者应用程序可以从中捕获来自用户的输入事件。
应用程序必须对Canvas类进行子类化,以便获得有用的功能,例如创建自定义组件。必须重写paint方法才能在画布上执行自定义图形
画布基本上是用来画画的。它也像一个面板,用于创建自定义的基于AWT的组件,但与面板不同,它不能包含其他组件。我在回答中链接的问题是,您不应该在Swing应用程序中使用它。你同意吗?@tieTYT:Canvas在Swing应用程序中可能不太有用,因为Swing提供了自己的双缓冲。(传递给paintComponent方法的图形对象将绘制到一个BuffereImage上,稍后将其显示到屏幕上。)还有一个问题,即Swing组件不能在AWT组件之前分层。Swing菜单和工具提示通常也无法在画布上绘制,但您可以使用JPOppMenu.setDefaultLightWeightPopupEnabled和ToolipManager.setLightWeightPopupEnabled来修复此问题。除此之外,如果您愿意,您当然可以在Swing中使用Canvas。