2015-07-14 2 views
1

Я разрабатываю устаревшее приложение для рабочего стола Java, смешивающее элементы управления Swing и AWT. Конечно, я могу успешно применять внешний вид системы для управления Swing, но могу ли я сделать то же самое для AWT? Если нет, могу ли я каким-либо образом реализовать какой-либо мост?Могу ли я применить внешний вид Swing к виджетам AWT?

+2

Нет. Компоненты AWT являются нативными компонентами, которые производят там внешний вид и непосредственно от ОС. – MadProgrammer

+0

Вы говорите, что AWT использует собственные виджеты ОС? Если это так, они определенно не выглядят (это похоже на тему, похожую на Motif, как на Linux, так и на Windows). –

+0

Я не уверен на 100%, где AWT извлекает их из (из собственного API или ОС), но они являются родными виджетами, как и все другие «обычные» элементы управления в системе (у них есть собственный дескриптор окна). Это также означает, что они контролируют собственную картину, отдельно от всего остального. – MadProgrammer

ответ

2

Основным ответом является «нет». Компоненты AWT поддерживаются встроенными компонентами ОС, либо напрямую (через поставляемые ОС библиотеки), либо косвенно (через собственные компоненты на основе AWT). Возможно, что AWT будет привязан к «старым» библиотекам компонентов, поэтому некоторые из компонентов не будут соответствовать текущему ОС «look and feel», в котором будут использоваться более новые библиотеки компонентов.

В любом случае вы не можете повлиять на то, как выглядят эти компоненты (и, конечно же, не через Swing's Look and Feel API).

Хорошо, это могло бы быть немного услышать сказать, но The Story Of Awt говорит «GuiToolkit Java пришлось использовать собственные виджеты, предоставляемые оконной системой хоста вне зависимости от факта Windows, Motif, или Mac. Подражая внешний вид и на ощупь в Java было недостаточно, это были настоящие родные компоненты ».