Где реализован метод рисования Java TextArea? - PullRequest
1 голос
/ 25 августа 2011

Я ищу реализацию метода paint для компонента Java TextArea ( java.awt.TextArea ).

Я прочитал исходный код для класса и его суперкласса ( java.awt.TextComponent ), но не нашел реализацию метода public void paint(Graphics g), которая, я думаю,означает, что класс будет использовать реализацию по умолчанию Component#paint(Graphics), что не имеет смысла.Я что-то здесь упускаю?Как окрашивается TextArea компонент?

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

TextArea - это компонент AWT, а не компонент Swing.Таким образом, это то, что называется тяжеловесным компонентом, что означает, что он фактически реализован собственным компонентом базовой платформы / ОС (то есть компонентом Windows / Gnome / Motif, в зависимости от ОС), называемым равноправным компонентом.Таким образом, рисование выполняется родным виджетом платформы, а не компонентом.

1 голос
/ 25 августа 2011

AWT Components - это динозавры из прошлого тысячелетия, и только на back-compactible есть и все еще существует, пожалуйста / лучше было бы изменить это на Todays JComponents, все начинается с "J", вот список JComponents с учебными пособиями , но для Swing's JComponents есть paintComponent(Graphics g) вместо paint(Graphics g)

, метод рисования все еще здесь, но для глубочайшего рисования в XxxXxxUI, например, MetalButtonUI ,но не для рисования Image / Lines / Text ... и просто старайтесь избегать похожих примеров из 2000 и других очень старых примеров, это действительно неправильная реализация для Custom Painting в Java6 Swing,

вот ваш необходимый учебник и Java6 API

на этом форуме много тем о Painting Something in JComponents

РЕДАКТИРОВАТЬ: если вы хотитенарисовать что-то, затем поискать JLabel (прозрачный по умолчанию), который лучше JComponent для 2D-графики , примеры для этого здесь и с paintComponent ()только метод

...