【发布时间】:2013-06-16 09:15:11
【问题描述】:
我一直在搜索许多来源,但仍然找不到合适的解释。我为什么要使用它,它的目的是什么,为什么它与 JPanels 等不同?
【问题讨论】:
标签: java swing jpanel awt java-2d
我一直在搜索许多来源,但仍然找不到合适的解释。我为什么要使用它,它的目的是什么,为什么它与 JPanels 等不同?
【问题讨论】:
标签: java swing jpanel awt java-2d
据我了解,Canvas 只是 Swing 的 JComponent 的 AWT 版本。你不应该直接使用它,除非你正在制作一个纯 AWT 应用程序。 You can find more info here.
【讨论】:
Canvas 的特殊之处在于,它与 Window 一样,可以提供自定义的硬件加速双缓冲和页面翻转。见BufferStrategy。
基本上,画布是用来画画的。它还可以像 Panel 一样创建基于 AWT 的自定义组件,但与 Panel 不同的是它不能包含其他组件。
【讨论】:
public class Canvas
extends Component
implements Accessible
Canvas 组件表示屏幕的一个空白矩形区域,应用程序可以在该区域上进行绘制,或者应用程序可以从中捕获来自用户的输入事件。 应用程序必须继承 Canvas 类才能获得有用的功能,例如创建自定义组件。必须重写paint 方法才能在画布上执行自定义图形。
基本上,画布是用来画画的。它还可以像 Panel 一样创建基于 AWT 的自定义组件,但与 Panel 不同的是它不能包含其他组件。
【讨论】: