![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Platon |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Здравствуйте, уважаемые.
Навтыкали мне тут недавно
Это делается так? если да, то толку нет. Как сделать отключение подложки, включить динамический relayouting и отчего Metal LaF умеет всё это я не знаю ![]()
проблема на картинке. ![]() Это сообщение отредактировал(а) Platon - 9.9.2008, 17:51 |
||||
|
|||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
||||
|
||||
serger |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: нет Всего: 5 |
-------------------- упс! |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
а вы плавно поведите за уголок.
Добавлено через 10 минут и 55 секунд Кстати, тачка не 2 ядра, и не мегапроц. На 2-х ядрах этот дефект слабо проявляется, а вот на взрослой (не сказать старенькой) машинке эффект наблюдается. |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
всяко пробовал - и плавно, и быстро, и развернуть/свернуть. border фрейма плавно растягивается, а после того как мышь отпустили - компоненты растягиваются. а машина у меня довольно старенькая - покупал еще когда про два ядра не слышно было ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
так это уже не есть гуд. надо, чтобы в процессе растягивания растягивались. Порастягивай любой браузер - вот идеальное поведение резинового приложения. |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Platon, мне пока не удалось воспроизвести ситуацию, хотя я хорошо её себе представляю; у меня всё растягивается синхронно с окошком, но без каких-либо артефактов. Опишите, что у вас за машинка, под какой (точно) версией java вы запускаете пример.
Добавлено @ 11:23
Нужна, во-первых, опция "показывать содержимое окон при перемещении", во-вторых, нужен динамический layouting. Это сообщение отредактировал(а) w1nd - 10.9.2008, 11:24 -------------------- ![]() ![]() |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Повторил. Такое происходит, если установлено в "true" системное свойство "sun.awt.noerasebackground". Надеюсь, не нужно объяснять, почему это вполне закономерно
![]() Когда разрешаются свойственные PLAF заголовки окон, ситуация меняется, потому что у окна нет заголовка и бордюра. Изменение размеров окна обрабатывается уже java-программой и не возникает ситуации, когда его размер изменился, но java-программа об этом ещё не оповещена. Вопросы есть? Это сообщение отредактировал(а) w1nd - 10.9.2008, 11:59 -------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Тачка Проц Celeron 2ГГц ОЗУ 768
да-да всё именно так. Добавлено @ 12:20 ![]() System.getProperty("sun.awt.noerasebackground") - это оно? Это сообщение отредактировал(а) Platon - 10.9.2008, 12:22 |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Да. Только в awt анализируется не значение этого свойства, а его наличие. Это сообщение отредактировал(а) w1nd - 10.9.2008, 12:25 -------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
т.е. если оно есть в свойствах, то это true? но я посмотрел, можно сказать, у меня в системе false
1.6.0_5 Это сообщение отредактировал(а) Platon - 10.9.2008, 12:28 |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Кстати, повторю то, что говорил в инициировавшей данную теме. Всем недовольным быстродействием swing-компонент стоит взглянуть на исходники swt. Вкратце, идея чудовищно проста - в компонентах не следует производить никаких сложных вычислений при отображении, все необходимые данные должны быть подготовлены заранее, причём в максимально удобном именно для отображения виде. Что это значит? Это значит - никаких рендереров, извлекающих значения из объектов, никаких моделей данных сложнее массива строк, минимизация обратных связей. Только это делает компоненты более отзывчивыми, а вовсе не нативность.
Добавлено @ 12:34
Нужно чтобы его совсем не было, присваивать false бесполезно. Это сообщение отредактировал(а) w1nd - 10.9.2008, 12:36 -------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
||||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
так что мне с проблемой делать?
|
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Пока проблема не воспроизводится. Или вы всё-таки зарыли где-то свойство noerasebackground ![]() -------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
||||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Это работает, если включен соответствующий эффект (что-то вроде Appearence->Effects->Show content while dragging) в установках Windows. Но при растягивании с этим эффектом занятость процессора может достигать 100% на слабых компьютерах. Поэтому на слабых компьютерах рекомендуют отключать эту "дружелюбность". Умная java при старте читает установки системы. Если упомянутый эффект включен на компьютере пользователя, то и java приложение у него автоматически будет растягиваться в "дружелюбной" манере. Если браузер растягивается нормально, а java приложение "тормозит", то значит компьютер не слабый и причина тормозов java скорее всего в коде приложения, а не в системных установках java. |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
||||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
ваш код не смотрел
![]() Это сообщение отредактировал(а) COVD - 14.9.2008, 22:37 |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Вообще-то мне пришлось постараться, чтоб поймать такую картинку. А на новеньком ноуте такое поймать совсем тяжко, но бордюрчик при ресайзе небольшой всё-таки наблюдается. Добавлено @ 11:36 Кстати, еще одно уточнение. Меня не пугает тяжелая отрисовка содержимого окна, меня расстраивает, что остается шлейф искореженного изображения. В FF, к примеру, если процессорного времени не хватает, размеры окна меняются реже, но шлейфа изображений нет! В Java если процессорного времени не хватает, размеры окна меняются одинаково, но содержимое окна, видимо, только тогда, когда успеет подготовиться расчет новых позиций и размеров компонентов. Это сообщение отредактировал(а) Platon - 15.9.2008, 11:38 |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Platon, так и не нашли нигде злосчастного свойства про background?
-------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
выводит null, так ведь и должно быть? |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Наконец скачал программку для съемки с экрана. Вот что у меня творится с программкой.
Присоединённый файл ( Кол-во скачиваний: 17 ) ![]() |
|||
|
||||
kamre |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 2 Всего: 13 |
У меня ничего подобного не налюдается, очень небольшой "шлейф", конечно, есть. Но получить такую картину, как на ролике не получается. Это я на десктопе AMD 2500+ NVidia 7600GS под виндой пробывал, вот с такой jre:
На ноутбуке с Celeron 1.7Ghz и интеловским видео под линуксом с java-1_6_0-sun-1.6.0.u6 действительно колбасит этот пример сильно. Но по другому, чем на ролике. А вот под виндой на том же ноуте уже нормально работает, т.е. "шлейф" чуть больше чем на десктопе, но очень быстро исчезает. С другой стороны у того же NetBeans на десктопе запросто можно увидеть косяки при ресайзе: ![]() Это действительно неизлечимое свойство swing? Или писатели NetBeans где-то накосячили? |
||||
|
|||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Может быть, какие-то системные (не java) настройки? Потому что я у себя ничего подобного воспроизвести не могу в принципе, только с отключением прорисовки фона.
-------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
w1nd, для системной настройки все приложения должны вести себя одинаково.
Добавлено через 5 минут и 15 секунд Кстати, что устанавливай что не устанавливай значение System.setProperty("sun.awt.noerasebackground", "true");, ничего не меняется, одинаковый результат, это нормально? |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Ролик-сравнение:
Программка Java код которой на первой странице Программа .NET Omea Reader Программа native FireFox Присоединённый файл ( Кол-во скачиваний: 12 ) ![]() |
|||
|
||||
kamre |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 2 Всего: 13 |
Кстати WebStart из substance при ресайзе хоть и дико тормозит, но никаких шлейфов не оставляет у меня. Значит все-таки можно это как-то настроить. Но вот почему для system look and feel этого не сделали тогда?
|
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Metal LaF тоже не "тормозит", почему?
Это сообщение отредактировал(а) Platon - 19.9.2008, 16:13 |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
Platon, может быть у тебя на JRE установлено что то типа плагина? не можем мы повторить твои проблемы на своих машинах (w1nd, dorogoyIV)
|
|||
|
||||
SoulKeeper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 2 Всего: 15 |
C2D E6550 @ 2.33 GHz, 2GB RAM, Intel® Q35 Express Chipset Family (встроеная графика) - тормоза практически не наблюдаются. |
|||
|
||||
kamre |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 2 Всего: 13 |
Я на ноуте Celeron 1.7Ghz Intel 945GM запускал. И тормоза только при ресайзе, когда хватаешься за угол мышкой и начинаешь активно таскать. Просто интерфейс внутри без заметных тормозов работает. Так что проблема для substance laf не критическая, но обычные виндовые приложения при ресайзе так сильно не тормозят. А вот windows laf оставляет шлейф за собой, т.е. как бы на каждый resize event пытается перерисовывать содержимое внутри, но не успевает. Вот можно для него настроить такую же перерисовку, как и в substance? |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Это был вопрос? Так вроде вы сами процитировали ответ... -------------------- ![]() ![]() |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Platon, запустите ваш пример с этими параметрами:
-------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Ну да. Мол: "Почему так происходит смотрим ниже" Добавлено через 2 минуты и 40 секунд -Dsun.awt.erasebackgroundonresize=true улучшило вид! Добавлено через 8 минут и 58 секунд Отчет о получившейся ситуации. Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Улучшило вид - да, но задачу своевременной отрисовки нет. Я так понимаю в Sun свой взгляд на удобство перетягивания формы и с решением без шлейфа кажется вполне симпатишным.
Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Platon, это всего лишь отключённый dynamic layout.
Добавлено через 4 минуты и 7 секунд Итак, подведём итог: ЛЕНЬ, МАТУШКА ![]() С одной стороны, мои сведения относительно настроек awt в sun jre несколько устарели, с другой стороны, вы так и не предприняли ничего, чтобы выяснить источник проблемы. Я имею в виду - сейчас, когда вам точно стала известна причина (непрорисовска фона окна). А нужно было всего лишь найти в java runtime класс, который реагирует на настройку "sun.awt.noerasebackground" и обнаружить новое свойство. Э? -------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
Да :( отключенный. А я в эйфории этого даже и не заметил. Даже и не знаю теперь как оставлять или с отключенным, но вид не напрягает, или с включенным и уповать на то, что это только у меня на машине такой страшный вид.
|
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Этот параметр должен зависеть от настройки форточек "показывать содержимое окна при перетаскивании". Но я его включаю всегда ![]() Это сообщение отредактировал(а) w1nd - 19.9.2008, 23:29 -------------------- ![]() ![]() |
|||
|
||||
kamre |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 2 Всего: 13 |
Решил тут еще попробывать IDEA вместо Eclipse. А у нее такие же косяки с ресайзом:
![]() при чем как на ноуте, так и на десктопе. IDEA 7.04, JDK 1.6.7, при перетаскивании окон в винде стоит отрисовка внутренностей. Platon, а это на ролике у тебя Nimbus LookAndFeel? И когда он все перерисовывает внутри окна, только когда отпускаешь кнопку мыши? |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
На ноутбуке что включенный, что неустановленный, одинаково работает.
kamre, да, нимбус. на пк работает тяжко со шлейфами, на ноуте динамично. Добавлено через 1 минуту и 17 секунд на ноуте работает нормально, только gridbaglayout меня пугает ![]() Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |