2013-06-19 2 views
4

Я искал много источников, но до сих пор не могу найти достойного объяснения. Почему я должен использовать его, какова его «цель и почему она отличается от JPanels и т. Д.?Что такое Canvas в AWT?

ответ

3

Специальность Canvas состоит в том, что, подобно окну, он может обеспечивать индивидуальную двойную буферизацию с аппаратным ускорением и перелистывание страниц. См. BufferStrategy.

Холст для рисования, в основном. Он также служит панелью для создания пользовательского компонента на основе AWT, но, в отличие от Panel, он не может содержать другие компоненты.

+0

Вопрос, на который я ссылался в своем ответе, говорит, что вы не должны использовать его в приложении Swing. Согласны ли вы с этим? –

+1

@tieTYT: Canvas, вероятно, менее полезен в приложении Swing, потому что Swing предоставляет собственную двойную буферизацию. (Объект Graphics, переданный методам paintComponent, опирается на BufferedImage, который позже появляется на экране.) Также существует проблема, что компоненты Swing не могут располагаться перед компонентами AWT. Swing menus & tooltips обычно не смогут рисовать поверх холста, но вы можете использовать JPopupMenu.setDefaultLightWeightPopupEnabled и ToolTipManager.setLightWeightPopupEnabled, чтобы исправить это. Кроме того, вы можете, конечно, использовать Canvas в Swing, если хотите. – Boann

+0

@tieTYT См. Также [Смешивание тяжеловесных и легких компонентов] (http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html). –

3

С моей точки зрения, Canvas - это только версия AWT JComponent Swing. Вы не должны использовать его напрямую, если только вы не делаете чистую программу AWT. You can find more info here.

0
public class Canvas 
extends Component 
implements Accessible 

холста компонент представляет собой пустую прямоугольную область экрана, на которую приложение может рисовать или с которого приложение может входные ловушки событий от пользователя. Приложение должно подклассифицировать класс Canvas, чтобы получить полезные функции, такие как создание настраиваемого компонента. Метод рисования должен быть переопределен для выполнения пользовательской графики на холсте.

Холст для рисования, в основном. Он также служит панелью для создания пользовательского компонента на основе AWT, но, в отличие от Panel, он не может содержать другие компоненты.

Смежные вопросы