Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработать, отрисовать 
:(
    Опции темы
Амортизатор
Дата 15.11.2005, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: нет
Всего: 8



Подскажите, как создать в апплете класс, который мог бы сам обрабатывать события (аналог виндового окна), т е что выбрать за базовый класс. Мне нужно реализовать в апплете интерфейс (за что отвечает отделный класс). Как-то не хочется обрабатывать и прорисовывать в классе апплета, хорошо бы снадбить этим тот самый интрфейсный класс.
Добавлено @ 23:05
Как варианты:
1) Понаследовать от Applet (можно ли?)
2) Применить внутри апплета другой апплет (т е менющку импортнуть). Можно ли?


--------------------
Поехали!
PM MAIL   Вверх
batigoal
Дата 15.11.2005, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Цитата
Понаследовать от Applet (можно ли?)

Можно. Обычно так и делается.

Цитата
Применить внутри апплета другой апплет (т е менющку импортнуть). Можно ли?

Может быть, и можно, но наверняка не стоит. Лучше использовать внутри апплета JPanel, либо другой свинговый компонент (ну и своих наследников от этих компонентов).


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Амортизатор
Дата 16.11.2005, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: нет
Всего: 8



Спасибо. Вопрос вдогонку - можно ли импортнуть в .class файл ресурс (битмап например) как в exe-ник?smile
Иль придется ограничиться пакиджем?


--------------------
Поехали!
PM MAIL   Вверх
LSD
Дата 16.11.2005, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата
Спасибо. Вопрос вдогонку - можно ли импортнуть в .class файл ресурс (битмап например) как в exe-ник?

В class файл ничего кроме кода нельзя добавить (вернее можно, но так лучше не делать). Все ресурсы лучше добавить в JAR, это и будет аналог exe-ника.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Амортизатор
Дата 16.11.2005, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: нет
Всего: 8



Спасибо всем.


--------------------
Поехали!
PM MAIL   Вверх
Амортизатор
Дата 16.11.2005, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: нет
Всего: 8



Окно второго класса не запускается!
s.show() - не помогает.

Напоминаю, этот класс производен от Applet и создается в другом классе-апплете.


--------------------
Поехали!
PM MAIL   Вверх
LSD
Дата 16.11.2005, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Апплет это не окно, и просто так его показать нельзя. Нельзя из Java открыть новое окно браузера и показать в нем апплет. Если тебе нужно окно то создай Frame или JFrame и уже у них вызывай show().


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Амортизатор
Дата 16.11.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: нет
Всего: 8



Мне нужно сделать следующее.
Я не знаю, как это сделано тут, но при программировании под винду можно апи-функциями создать дочернее окно (используя хендл главного окна). Можно задать ему определенный стиль - это поддерживается самой Windows и реализуется опять таки апи-функциями. Например, без рамки. Или, напрмер, в MFC наследуем от CWnd и готово окно.
Как сделать тоже самое тут? Мне нужно окно без всяких рамочек и заголовков. Окно я сделал (наследник - JFrame) но оно не того стиля.

З Ы Извиняюсь за бестолковые вопросы, Java юзаю только несколько дней, нужно быстро сделать апплет.

Это сообщение отредактировал(а) Амортизатор - 16.11.2005, 21:05


--------------------
Поехали!
PM MAIL   Вверх
LSD
Дата 16.11.2005, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата
Мне нужно окно без всяких рамочек и заголовков. Окно я сделал (наследник - JFrame) но оно не того стиля.

Окно без "оформления" создается так:
Код
JFrame frame = new JFrame();
frame.setUndecorated(true);



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Амортизатор
Дата 17.11.2005, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: нет
Всего: 8



Это не совсем то. Мне видишь ли надо, чтобы окно было частью интерфейса, а не существовало отдельно. Короче надо, чтобы окно вело себя как типичные окна Windows - кнопки, менюшки и др. контролы. А то сворачиваешь браузер, а окно остается... Оно отдельно от браузера и апплета, из которого вызывается, а надо, чтобы оно "лежало" на нем.


--------------------
Поехали!
PM MAIL   Вверх
LSD
Дата 17.11.2005, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата
Оно отдельно от браузера и апплета, из которого вызывается, а надо, чтобы оно "лежало" на нем.

Не понимаю. Апплет это часть веб страницы, тебе надо чтобы окно отображалось внутри апплета?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Амортизатор
Дата 17.11.2005, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: нет
Всего: 8



Говоря другим языком, мне надо написать контрол - меню для апплета. Не контрол-апплет, а контрол ДЛЯ АППЛЕТА. Т е сам апплет предназначен для других задач, в нем есть класс-менюшка. Надо, чтобы этот класс создал окно, принадлежащее апплету, итз которого вызывается. Говоря окно, я использую терминологию винды, может это у вас как то по другому называется. В Windows любой контрол создает свое собственное окно, в котором прорисовывется. Мне нужно тоже самое для апплета.


--------------------
Поехали!
PM MAIL   Вверх
LSD
Дата 17.11.2005, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата
Надо, чтобы этот класс создал окно, принадлежащее апплету, итз которого вызывается. Говоря окно, я использую терминологию винды, может это у вас как то по другому называется. В Windows любой контрол создает свое собственное окно, в котором прорисовывется. Мне нужно тоже самое для апплета.

Я все равно не понимаю smile
Ты или приведи некий пример поведения, который можно посмотреть или опиши какое поведение тебе требуется от окна.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Амортизатор
Дата 17.11.2005, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: нет
Всего: 8



Хорошо.
Рассмотрим Windows-приложение. Вот мы создаем функцией Create окно. Это в общем случае - главное окно приложения. Предположим, мы хотим написать свой компонент-меню, который затем разместим на главном окне. Как это делается? Очень просто. Вызываем апи-функцию, и создаем для нашего главного окна ДОЧЕРНЕЕ окно. Дочернее окно полностью автномно в том смысле, что само себя отрисовывает в ответ на сообщение WM_PAINT, может само перехватывает сообщения от системы. Ну, мы рисуем в этом окне кнопочки, можем задать если требуется форму окна. Таким образом наш компонент - кнопочка там или меню - это обыкновенное дочернее окно Windows.

Так вот, мне нужно то же самое! К примеру, хотим сделать апплет. Предположим, предназначенный для показа изображений. Нам нужно создать менюшку и разместить ее на апплете. Нажал на одну - показывается одно изображение и т д. Конечно, я мог бы нарисовать эту менюху прямо на апплете, однако тогда пришлось бы, во первых, отрисовывать и обрабатывать сообщения прямо в окне главного апплета, во вторых, не так просто будет эту менюху затем перенести в другой апплет. Поэтому я хочу создать меню в ДРУГОМ окне, дочернем по отношению к главному окну апплета. Можно ли это сделать? То что мне пока удалось сделать - это создать окно, независимое от апплета. Наприсмер, сворачиваем браузер, а это окно прдолжает висеть в воздухе.


--------------------
Поехали!
PM MAIL   Вверх
batigoal
Дата 17.11.2005, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Все значительно проще, как я понял - надо просто сделать меню, и добавить его в окно апплета.
Цитата
Таким образом наш компонент - кнопочка там или меню - это обыкновенное дочернее окно Windows.

А у нас это - просто компонент, и не более того. Он автономен сам по себе.

Это сообщение отредактировал(а) Lamer George - 17.11.2005, 22:30


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0745 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.