|
FreeZer
|
|
Какой layout менеджер использовать в апплете?16.08.2009, 01:36. Показов 2047. Ответов 18
Метки нет (Все метки)
в частночти интересует вопрос можно ли строить интерфейс пользователя для апплета с применением GridBagLayout? Запускаю я апплет в Windows.
Если просто щелкнуть мышкой по html файлу с кодом апплета, то я получаю ошибку java.lang.NoSuchMethodError: java/awt/GridBagConstraints .. Если я из броузера открываю html файл напрямую, т.е. через файл/открыть..., тогда все ок. Если я применяю другой менеджер, напр., BorderLayout - все работает в обоих случаях. Скажите, пожалуйста, как лучше строить интерфейс пользователя в апплете, на чем его надо основывать? Спасибо! |
|
| 16.08.2009, 01:36 | |
|
Ответы с готовыми решениями:
18
Какой Layout использовать? Какой Layout подобрать? Проверить какой layout открыт |
|
noir
|
|
| 16.08.2009, 06:53 | |
|
Почитай javadoc. там для каждого класса и метода указано, в какой версии JDK он появился. Тебе нужны те, что были в JDK 1.x.
|
|
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 16.08.2009, 18:29 | |
|
GridBagLayout - самый сложный в применении. Мы почти разобрались с ним, но потом все равно плюнули и стали делать совсем без всего, т.е. ставим setLayout(null) и сами вычисляем все размеры и позиции в методе paint() в зависимости от текущего размера фрейма. Ну, а простые лэйауты хорошо работают, но показались бесполезными.
0
|
|
|
FreeZer
|
|
| 16.08.2009, 20:16 | |
|
Я посмотрел и узнал,что GridBagLayout уже был в jdk 1.0 в соcтаве awt пакета. Элементы я применяю из awt, т.е. все должно работать. Запускаю апплет в ie6, который имеет Microsoft (R) VM for Java, 5.0 Release 5.0.0.3802. Только вот как из этой инфы узнать версию jdk, кот. использует ie6? Подскажите, пожалуйста.
Mselez, как ты указываешь положение элемента без лейаута? |
|
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 16.08.2009, 20:43 | |
|
Я указываю положения и размер видимых компонентов внутри фрейма например так: mypanel.setLocation(..), mypanel.setSize(..) , т.е. делаю вручную то же самое, что делает лэйаут менеджер автоматически.
Если пользователь меняет размер фрейма, то надо определить его новый текущий размер через getSize().width, ..height и вычислить новые координаты и размеры внутренних компонентов. Также надо использовать getInsets(), чтобы определить внутренние размеры фрейма(без учета его рамки). Когда я понял, как это работает, мне стало проще это делать вручную, чем доверять автоматике, котораю не всегда делает то, что нужно, особенно это относится к GridBag.. Проблемы там были, когда компонент удаляется или добавляется в процессе работы и менеджер не всегда видит их, что-то в этом роде.
0
|
|
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 16.08.2009, 20:54 | |
|
А по поводу версии jdk в браузере достаточно знать , что встроенная пока ниже 1.2, не стоит на этом зацикливаться.
0
|
|
|
FreeZer
|
|
| 16.08.2009, 21:48 | |
|
Mselez, огромное спасибо за твои ответы!
Действительно, в ручную все сделать - лучший выход из положения. |
|
|
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
|
|
| 16.08.2009, 22:11 | |
|
вам действительно нравится извращаться ручками? ну давайте
а по поводу неправильной работы менеджера. так обновлять же нужно компонент фрейма или как вы думаете?
0
|
|
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 16.08.2009, 22:55 | |
|
Понимаю, методологически это не правильно, изобретать велосипед. Но бесконечно долго осваивать и бороться с 'правильными' готовыми решениями тоже не всегда можно себе позволить. Насколько я помню, при использовании GridBagLayout важно было соблюсти порядок действий - сначала обьявить лэйаут, потом вставить компоненты во фрейм, потом установить правила их компоновки. И я добился потрясающих успехов, но через полгода он все равно меня победил. Кажется проблема была при добавлении нового компонента уже после инициации, а добавить в нужное время было нельзя и т.д.. , к сожалению, не помню точно
.
0
|
|
|
noir
|
|
| 16.08.2009, 23:29 | |
|
Не, лэйауты, - штука вполне нормальная, если привыкнуть. А самая вероятная причина ошибки в том, что Конструктор GridBagConstraints, принимающий параметры появился в JDK 1.2. До этого был только пустой.
Майкрософтовская Джава грубо соответствует JDK 1.1. |
|
|
FreeZer
|
|
| 17.08.2009, 00:34 | |
|
Госпада,похоже этот MS IE 6 добьет меня
![]() Теперь браузер отказывается показывать апплет, если я применяю StringTokenizer. Не понимаю в чем дело, ведь написано же в javadoc, что StringTokenizer в jdk Since:JDK1.0. Блин, что этому гребаному броузеру не хватает?! Показывает только серый прямоугольник и, в строке состяния, пишет applet started. Что это за хреновина? |
|
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 17.08.2009, 01:21 | |
|
Ну, StringTokenizer совсем безобидная вещь, он есть везде. Надо в консоли браузера смотреть сообщения об ошибках. У меня часто случалось - если один из токенов равен пустой строке, то количество токенов будет меньше, чем предполагалось и будет exception NoSuchElement.., что-то в этом роде.
0
|
|
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
| 17.08.2009, 11:08 | |
|
эээ... А можно и мне свои две копейка, а?
mselez, дарагой, вот ты сам расчитываешь координыта, так? У тебя ведь есть алгоритм расчета, так? Ну почему бы не оформить этот алгоритм в виде своего собственного лэйаут манагера? По-моему, было бы не плохо, как думаешь?
0
|
|
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 17.08.2009, 17:27 | |
|
Их и бэз мэня нэмэрянно настругали.
0
|
|
|
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 24
|
|
| 17.08.2009, 17:34 | |
|
Скорее всего ты просто неправильно используешь GridBagLayout, не забудь еще и про GridBagConstraints
0
|
|
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 17.08.2009, 18:00 | |
|
Да, я недостаточно хорошо разобрался в нем, и я не утверждаю, что он плохо работает и не призываю отказываться от его использования
.
0
|
|
|
FreeZer
|
|
| 17.08.2009, 19:53 | |
|
а что с GridBagConstraints, на что здесь надо обратить внимание?
|
|
|
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 27
|
|
| 18.08.2009, 12:18 | |
|
А можно мне тоже свой вопрос здесь задать?..Вроде в тему...Заранее извиняюсь если оскорблю чьи то чувства...
Так вот, я пользуюсь GridBagLayout, и у меня такая проблема: в форме есть несколько jdbTextArea и один jdbTextArea,обрамленный jdbScrollPane...так вот...когда вводимые мною данные в эти поля переходят на несколько строк(соответственно есть записи, в которых в этом поле 1 строка , есть где 2,3 и т д....) и когда я в этой форме хожу по записям с помощью jdbNavToolBar, то у меня начинаются какие то изменения размеров компонентов внутри фрейма, мелькания какие то и скачки...очень некрасиво выглядит...причину не могу обнаружить, но подозреваю тот самый jdbTextArea, обрамленный jdbScrollPane...может подскажете в чем тут может быть дело?...заранее благодарна.
0
|
|
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 19.08.2009, 17:56 | |
|
Наверное, GridBagLayout не при чем. В результате ваших действий компоненты меняют свои размеры и лэйаут менеджер вынужден их заново разместить в соответствии с ..Constraints. Я бы для начала поместил в методы paint() компонентов вывод в консоль их размеров, чтобы понять, что происходит. Увлекательное занятие
.
0
|
|
| 19.08.2009, 17:56 | |
|
Помогаю со студенческими работами здесь
19
Список приложений какой Layout выбрать Какой layout удобнее для List Item На какой тип Layout добавление View идёт быстрее Файловый менеджер, какие компоненты использовать Какой менеджер загрузок лучше? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2.
Номеклатура. . .
|