| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > Как использовать совместно AWT и Swing? |
| Автор: Гость_serge 18.4.2005, 10:08 |
| Как использовать совместно AWT и Swing? Имеется апплет использующий AWT, но в Linux AWT-компоненты не умеют отображать русские буквы. Поностью переписывать апплет не хочется. После частичной замены AWT на Swing возникаю следующие проблемы с JScrollPane (содежит Canvas, который периодически перерысовываеется используя двойную буферизацию): - неправильно отрисовывает полосы прокрутки, если нужны обе, при этом вложенный объект при прокрутки может вылезать влево и вверх за пределы JScrollPane; - неправильно определяет макимальные значения прокрутки при измнении размеров вложенного объекта при их изменении |
| Автор: batigoal 18.4.2005, 11:23 |
| Касаемо совместного использования - по-моему, AWT и Swing можно комбинировать как угодно, тут проблем не должно быть. А насчет проблем - не знаю, может, код кинешь? |
| Автор: Гость_serge 18.4.2005, 16:29 | ||
Для проверки нужна мышь с колесом. Изменить размеры окна, чтобы нужны были обе полосы прокрутки - их не видно. Прокрутить колесом вниз - появится горизонтальная полоса прокрутки, при этом панель north будет невидима; прокрутить горизонтально - появится вторая полоса прокутки (если бы была панель left, она тоже бы затерлась) |
| Автор: batigoal 18.4.2005, 16:47 |
| Да уж, более чем странно. Надо попробовать покопать... |
| Автор: Domestic Cat 18.4.2005, 17:42 |
| Вообще-то не советуется использовать вместе компоненты AWT и Свинга. Попробуй переписать все на чем-нибудь одном. |
| Автор: batigoal 18.4.2005, 17:45 | ||
Так ведь почти во всех случаях встречается:
Или ты имеешь в виду именно визуальные компоненты? |
| Автор: Domestic Cat 18.4.2005, 17:52 |
| Ага, речь о визуальных компонентах. |
| Автор: batigoal 18.4.2005, 18:17 | ||
Вот так, кажись, работает:
|
| Автор: Гость_serge 19.4.2005, 10:50 |
| Конечно, если использовать только Swing компоненты, все будет работать. Этот пример - упрощение. У меня объявлен интефейс UIFactory, который создает либо AWT, либо Swing компоненты. При старте апплет проверяет версию виртульной машины и выбирает нужную реализацию UIFactory. Но сам апплет остается java.applet.Applet, а не javax.swing.JApplet. Какой аналог Canvas в Swing? JLabel c изображением? |
| Автор: Гость_serge 19.4.2005, 17:15 | ||
Для того чтобы вставить Swing компонент в AWT-контейнер нужно использовать JRootPane. Обратного переходника видимо нет.
|
| Автор: Domestic Cat 19.4.2005, 17:42 | ||
JPanel |