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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Улучшение дружелюбности GUI, в частности ресайз приложения 
V
    Опции темы
Platon
Дата 9.9.2008, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Здравствуйте, уважаемые.
Навтыкали мне тут недавно

Цитата(w1nd @  9.9.2008,  15:51 Найти цитируемый пост)
У вас может и шуточки. Отключить перерисовку подложки, включить динамический relayouting и повыкидывать логику из EDT - ничего такого не будет.

Добавлено через 2 минуты и 13 секунд
Цитата(Platon @  9.9.2008,  14:25 Найти цитируемый пост)
В плане ресайзов круче всех Metal LaF с параметром JFrame.setDefaultLookAndFeelDecorated(true), поведение GUI просто идеально

Вы хоть раз пробовали разобраться - отчего? 



Цитата(w1nd @  9.9.2008,  15:51 Найти цитируемый пост)
включить динамический relayouting

Код

Toolkit.getDefaultToolkit().setDynamicLayout(true);

Это делается так? если да, то толку нет.

Как сделать отключение подложки, включить динамический relayouting и отчего  Metal LaF умеет всё это я не знаю smile 

Цитата(w1nd @  9.9.2008,  17:52 Найти цитируемый пост)
Сделайте пример, разберём по косточкам. 


Код

import javax.swing.*;
import java.awt.*;

public class TestGUI {
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            e.printStackTrace();
        }
        JFrame.setDefaultLookAndFeelDecorated(true);
        JDialog.setDefaultLookAndFeelDecorated(true);

        JFrame f = new JFrame();
        f.getContentPane().add(buildPanel());
        f.getContentPane().add(BorderLayout.EAST, buildPanel());
        f.pack();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }

    private static Component buildPanel() {
        JPanel panel = new JPanel(new GridBagLayout());
        panel.add(new JLabel("Строчка 1/1"),     new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JTextField("Строчка 1/2"), new GridBagConstraints(1, 0, 1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JLabel("Строчка 2/1"),     new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JTextField("Строчка 2/2"), new GridBagConstraints(1, 1, 1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JLabel("Строчка 3/1"),     new GridBagConstraints(0, 2, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JTextField("Строчка 3/2"), new GridBagConstraints(1, 2, 1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JLabel("Строчка 4/1"),     new GridBagConstraints(0, 3, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JTextField("Строчка 4/2"), new GridBagConstraints(1, 3, 1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JLabel("Строчка 5/1"),     new GridBagConstraints(0, 4, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        panel.add(new JTextField("Строчка 5/2"), new GridBagConstraints(1, 4, 1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,2,2,2), 1, 1));
        return panel;
    }
}


проблема на картинке.

user posted image

Это сообщение отредактировал(а) Platon - 9.9.2008, 17:51
PM MAIL ICQ   Вверх
dorogoyIV
Дата 9.9.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Platon @  9.9.2008,  17:26 Найти цитируемый пост)
проблема на картинке.

у меня таких проблем не наблюдается  smile 
jre 1.6..., все параметры по умолчанию
PM MAIL   Вверх
serger
Дата 10.9.2008, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Аналогично...

user posted image


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Platon
Дата 10.9.2008, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



а вы плавно поведите за уголок.

Добавлено через 10 минут и 55 секунд
Кстати, тачка не 2 ядра, и не мегапроц. На 2-х ядрах этот дефект слабо проявляется, а вот на взрослой (не сказать старенькой) машинке эффект наблюдается.
PM MAIL ICQ   Вверх
dorogoyIV
Дата 10.9.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Platon @  10.9.2008,  06:30 Найти цитируемый пост)
а вы плавно поведите за уголок.

всяко пробовал - и плавно, и быстро, и развернуть/свернуть.
border фрейма плавно растягивается, а после того как мышь отпустили - компоненты растягиваются.
а машина у меня довольно старенькая - покупал еще когда про два ядра не слышно было  smile 
PM MAIL   Вверх
Platon
Дата 10.9.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Цитата(dorogoyIV @  10.9.2008,  12:11 Найти цитируемый пост)
а после того как мышь отпустили - компоненты растягиваются.

так это уже не есть гуд. надо, чтобы в процессе растягивания растягивались. Порастягивай любой браузер - вот идеальное поведение резинового приложения.
PM MAIL ICQ   Вверх
w1nd
Дата 10.9.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Platon, мне пока не удалось воспроизвести ситуацию, хотя я хорошо её себе представляю; у меня всё растягивается синхронно с окошком, но без каких-либо артефактов. Опишите, что у вас за машинка, под какой (точно) версией java вы запускаете пример.

Добавлено @ 11:23
Цитата(Platon @  10.9.2008,  11:19 Найти цитируемый пост)
так это уже не есть гуд. надо, чтобы в процессе растягивания растягивались.

Нужна, во-первых, опция "показывать содержимое окон при перемещении", во-вторых, нужен динамический layouting.

Это сообщение отредактировал(а) w1nd - 10.9.2008, 11:24


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
w1nd
Дата 10.9.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Повторил. Такое происходит, если установлено в "true" системное свойство "sun.awt.noerasebackground". Надеюсь, не нужно объяснять, почему это вполне закономерно smile Данный эффект нивелируется включением dynamic layout, но только если не блокировать EDT.  При достаточной нагрузке на систему этот эффект проявится и без блокирования EDT, благодаря дефициту процессорного времени.

Когда разрешаются свойственные PLAF заголовки окон, ситуация меняется, потому что у окна нет заголовка и бордюра. Изменение размеров окна обрабатывается уже java-программой и не возникает ситуации, когда его размер изменился, но java-программа об этом ещё не оповещена.

Вопросы есть?

Это сообщение отредактировал(а) w1nd - 10.9.2008, 11:59


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 10.9.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Тачка Проц Celeron 2ГГц  ОЗУ 768

Цитата(w1nd @  10.9.2008,  12:21 Найти цитируемый пост)
Нужна, во-первых, опция "показывать содержимое окон при перемещении", во-вторых, нужен динамический layouting.

да-да всё именно так.

Добавлено @ 12:20
Цитата(w1nd @  10.9.2008,  12:51 Найти цитируемый пост)
Вопросы есть?

 smile 
System.getProperty("sun.awt.noerasebackground") - это оно?

Это сообщение отредактировал(а) Platon - 10.9.2008, 12:22
PM MAIL ICQ   Вверх
w1nd
Дата 10.9.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Цитата(Platon @  10.9.2008,  12:17 Найти цитируемый пост)
System.getProperty("sun.awt.noerasebackground") - это оно?

Да. Только в awt анализируется не значение этого свойства, а его наличие.

Это сообщение отредактировал(а) w1nd - 10.9.2008, 12:25


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 10.9.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



т.е. если оно есть в свойствах, то это true? но я посмотрел, можно сказать, у меня в системе false
1.6.0_5

Это сообщение отредактировал(а) Platon - 10.9.2008, 12:28
PM MAIL ICQ   Вверх
w1nd
Дата 10.9.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Кстати, повторю то, что говорил в инициировавшей данную теме. Всем недовольным быстродействием swing-компонент стоит взглянуть на исходники swt. Вкратце, идея чудовищно проста -  в компонентах не следует производить никаких сложных вычислений при отображении, все необходимые данные должны быть подготовлены заранее, причём в максимально удобном именно для отображения виде. Что это значит? Это значит - никаких рендереров, извлекающих значения из объектов, никаких моделей данных сложнее массива строк, минимизация обратных связей. Только это делает компоненты более отзывчивыми, а вовсе не нативность.

Добавлено @ 12:34
Цитата(Platon @  10.9.2008,  12:27 Найти цитируемый пост)
т.е. если оно есть в свойствах, то это true? но я посмотрел, можно сказать, у меня в системе false1.6.0_5

Нужно чтобы его совсем не было, присваивать false бесполезно.

Это сообщение отредактировал(а) w1nd - 10.9.2008, 12:36


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 10.9.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Цитата(w1nd @  10.9.2008,  13:33 Найти цитируемый пост)
Нужно чтобы его совсем не было, присваивать false бесполезно.

Да, я понял, я имел ввиду, также как вы сказали
Цитата(w1nd @  10.9.2008,  12:51 Найти цитируемый пост)
если установлено в "true" системное свойство "sun.awt.noerasebackground"

Потом уточнили, что свойство должно присутствовать / отсутствовать
вот я и написал 
Цитата(Platon @  10.9.2008,  13:27 Найти цитируемый пост)
можно сказать, у меня в системе false

т.е. null
PM MAIL ICQ   Вверх
Platon
Дата 12.9.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



так что мне с проблемой делать?
PM MAIL ICQ   Вверх
w1nd
Дата 12.9.2008, 12:17 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Цитата(Platon @  12.9.2008,  11:43 Найти цитируемый пост)
так что мне с проблемой делать?

Пока проблема не воспроизводится. Или вы всё-таки зарыли где-то свойство noerasebackground smile Начните с пробы другой версии jvm. В любом случае, описанное поведение (неперерисовка фона окна) не является нормой.


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 14.9.2008, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



w1nd, чем ниже версия тем хуже. Там уже отключен динамический relayouting по умолчанию.

Цитата(w1nd @  12.9.2008,  13:17 Найти цитируемый пост)
В любом случае, описанное поведение (неперерисовка фона окна) не является нормой. 

Думаю, норма, просто никто не зацикливается на этом.
PM MAIL ICQ   Вверх
COVD
Дата 14.9.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Цитата

Порастягивай любой браузер - вот идеальное поведение резинового приложения. 


Это работает, если включен соответствующий эффект (что-то вроде Appearence->Effects->Show content while dragging) в установках Windows. Но при растягивании с этим эффектом  занятость процессора может достигать 100% на слабых компьютерах. Поэтому на слабых компьютерах рекомендуют отключать эту "дружелюбность".

Умная java при старте читает установки системы. Если упомянутый эффект включен на компьютере пользователя, то и java приложение у него автоматически будет растягиваться в "дружелюбной" манере. 

Если браузер растягивается нормально, а java приложение "тормозит", то значит компьютер не слабый и причина тормозов java скорее всего в коде приложения, а не в системных установках java.  


PM MAIL   Вверх
Platon
Дата 14.9.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Цитата(COVD @  14.9.2008,  21:51 Найти цитируемый пост)
Если браузер растягивается нормально, а java приложение "тормозит", то значит компьютер не слабый и причина тормозов java скорее всего в коде приложения, а не в системных установках java.

Код программы приведен. Где узкое место?
PM MAIL ICQ   Вверх
COVD
Дата 14.9.2008, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



ваш код не смотрел smile. Я высказался имея перед глазами наше приложение (а там и сортировки в таблице и сложная обьектная модель). Никто у нас тюнингом динамического лайаутинга не занимался по причине незнания этих слов. На моем домашнем слабом компьютере браузер с гугловской главной страничкой растягивается нормально (она ж пустая практически) и занятость процессора при этом подскакивает до 60-100%. А окно с таблицей нашего приложения показывает аналогичный вашему эффект. Но тормоза не такие трагичные, чтобы можно было успеть схватить картинку. 

Это сообщение отредактировал(а) COVD - 14.9.2008, 22:37
PM MAIL   Вверх
Platon
Дата 15.9.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Цитата(COVD @  14.9.2008,  23:36 Найти цитируемый пост)
Но тормоза не такие трагичные, чтобы можно было успеть схватить картинку. 

Вообще-то мне пришлось постараться, чтоб поймать такую картинку. А на новеньком ноуте такое поймать совсем тяжко, но бордюрчик при ресайзе небольшой всё-таки наблюдается.

Добавлено @ 11:36
Кстати, еще одно уточнение. Меня не пугает тяжелая отрисовка содержимого окна, меня расстраивает, что остается шлейф искореженного изображения. В FF, к примеру, если процессорного времени не хватает, размеры окна меняются реже, но шлейфа изображений нет!
В Java если процессорного времени не хватает, размеры окна меняются одинаково, но содержимое окна, видимо, только тогда, когда успеет подготовиться расчет новых позиций и размеров компонентов.

Это сообщение отредактировал(а) Platon - 15.9.2008, 11:38
PM MAIL ICQ   Вверх
w1nd
Дата 16.9.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Platon, так и не нашли нигде злосчастного свойства про background?


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 16.9.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Код

System.out.println(System.getProperty("sun.awt.noerasebackground"));

выводит null, так ведь и должно быть?
PM MAIL ICQ   Вверх
Platon
Дата 16.9.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Наконец скачал программку для съемки с экрана. Вот что у меня творится с программкой.

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  test.rar 34,48 Kb
PM MAIL ICQ   Вверх
kamre
Дата 18.9.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Цитата(Platon @ 16.9.2008,  15:35)
Наконец скачал программку для съемки с экрана. Вот что у меня творится с программкой.

У меня ничего подобного не налюдается, очень небольшой "шлейф", конечно, есть. Но получить такую картину, как на ролике не получается. Это я на десктопе AMD 2500+ NVidia 7600GS под виндой пробывал, вот с такой jre:
Цитата
java version "1.6.0_06"
Java™ SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot™ Client VM (build 10.0-b22, mixed mode, sharing)


На ноутбуке с Celeron 1.7Ghz и интеловским видео под линуксом с java-1_6_0-sun-1.6.0.u6 действительно колбасит этот пример сильно. Но по другому, чем на ролике. А вот под виндой на том же ноуте уже нормально работает, т.е. "шлейф" чуть больше чем на десктопе, но очень быстро исчезает.

С другой стороны у того же NetBeans на десктопе запросто можно увидеть косяки при ресайзе:
user posted image
Это действительно неизлечимое свойство swing? Или писатели NetBeans где-то накосячили?
PM MAIL   Вверх
w1nd
Дата 19.9.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Может быть, какие-то системные (не java) настройки? Потому что я у себя ничего подобного воспроизвести не могу в принципе, только с отключением прорисовки фона.


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 19.9.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



w1nd, для системной настройки все приложения должны вести себя одинаково.

Добавлено через 5 минут и 15 секунд
Кстати, что устанавливай что не устанавливай значение System.setProperty("sun.awt.noerasebackground", "true");, ничего не меняется, одинаковый результат, это нормально?
PM MAIL ICQ   Вверх
Platon
Дата 19.9.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Ролик-сравнение:
Программка Java код которой на первой странице
Программа .NET Omea Reader
Программа native FireFox



Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  problemy.rar 237,52 Kb
PM MAIL ICQ   Вверх
kamre
Дата 19.9.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Кстати WebStart из substance при ресайзе хоть и дико тормозит, но никаких шлейфов не оставляет у меня. Значит все-таки можно это как-то настроить. Но вот почему для system look and feel этого не сделали тогда?
PM MAIL   Вверх
Platon
Дата 19.9.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Metal LaF тоже не "тормозит", почему?

Цитата(w1nd @  10.9.2008,  12:51 Найти цитируемый пост)
Когда разрешаются свойственные PLAF заголовки окон, ситуация меняется, потому что у окна нет заголовка и бордюра. Изменение размеров окна обрабатывается уже java-программой и не возникает ситуации, когда его размер изменился, но java-программа об этом ещё не оповещена.


Это сообщение отредактировал(а) Platon - 19.9.2008, 16:13
PM MAIL ICQ   Вверх
dorogoyIV
Дата 19.9.2008, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Platon, может быть у тебя на JRE установлено что то типа плагина? не можем мы повторить твои проблемы на своих машинах (w1nd, dorogoyIV)

PM MAIL   Вверх
SoulKeeper
Дата 19.9.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

Репутация: 2
Всего: 15



Цитата(kamre @  19.9.2008,  15:25 Найти цитируемый пост)
стати WebStart из substance при ресайзе хоть и дико тормозит, но никаких шлейфов не оставляет у меня. Значит все-таки можно это как-то настроить. Но вот почему для system look and feel этого не сделали тогда? 


C2D E6550 @ 2.33 GHz, 2GB RAM, Intel® Q35 Express Chipset Family (встроеная графика) - тормоза практически не наблюдаются.
PM MAIL   Вверх
kamre
Дата 19.9.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Цитата(SoulKeeper @ 19.9.2008,  17:30)
C2D E6550 @ 2.33 GHz, 2GB RAM, Intel® Q35 Express Chipset Family (встроеная графика) - тормоза практически не наблюдаются.

Я на ноуте Celeron 1.7Ghz Intel 945GM запускал. И тормоза только при ресайзе, когда хватаешься за угол мышкой и начинаешь активно таскать. Просто интерфейс внутри без заметных тормозов работает. 

Так что проблема для substance laf не критическая, но обычные виндовые приложения при ресайзе так сильно не тормозят. А вот windows laf оставляет шлейф за собой, т.е. как бы на каждый resize event пытается перерисовывать содержимое внутри, но не успевает. Вот можно для него настроить такую же перерисовку, как и в substance?
PM MAIL   Вверх
w1nd
Дата 19.9.2008, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Цитата(Platon @  19.9.2008,  16:11 Найти цитируемый пост)
Metal LaF тоже не "тормозит", почему?

Это был вопрос? Так вроде вы сами процитировали ответ...


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
w1nd
Дата 19.9.2008, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Platon, запустите ваш пример с этими параметрами:
Код
-Dsun.awt.noerasebackground=false -Dsun.awt.erasebackgroundonresize=true



--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 19.9.2008, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Цитата(w1nd @  19.9.2008,  22:55 Найти цитируемый пост)
Это был вопрос? Так вроде вы сами процитировали ответ... 

Ну да. Мол: "Почему так происходит смотрим ниже"

Добавлено через 2 минуты и 40 секунд
-Dsun.awt.erasebackgroundonresize=true улучшило вид!

Добавлено через 8 минут и 58 секунд
Отчет о получившейся ситуации.

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  problemy_resheny.rar 77,31 Kb
PM MAIL ICQ   Вверх
Platon
Дата 19.9.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Улучшило вид - да, но задачу своевременной отрисовки нет. Я так понимаю в Sun свой взгляд на удобство перетягивания формы и с решением без шлейфа кажется вполне симпатишным.

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  problemy_resheny.rar 77,31 Kb
PM MAIL ICQ   Вверх
w1nd
Дата 19.9.2008, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Platon, это всего лишь отключённый dynamic layout.

Добавлено через 4 минуты и 7 секунд
Итак, подведём итог: ЛЕНЬ, МАТУШКА smile 

С одной стороны, мои сведения относительно настроек awt в sun jre несколько устарели, с другой стороны, вы так и не предприняли ничего, чтобы выяснить источник проблемы. Я имею в виду - сейчас, когда вам точно стала известна причина (непрорисовска фона окна). А нужно было всего лишь найти в java runtime класс, который реагирует на настройку "sun.awt.noerasebackground" и обнаружить новое свойство. Э?


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 19.9.2008, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



Да :( отключенный. А я в эйфории этого даже и не заметил. Даже и не знаю теперь как оставлять или с отключенным, но вид не напрягает, или с включенным и уповать на то, что это только у меня на машине такой страшный вид.
PM MAIL ICQ   Вверх
w1nd
Дата 19.9.2008, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Цитата(Platon @  19.9.2008,  23:18 Найти цитируемый пост)
Даже и не знаю теперь как оставлять или с отключенным, но вид не напрягает, или с включенным и уповать на то, что это только у меня на машине такой страшный вид.

Этот параметр должен зависеть от настройки форточек "показывать содержимое окна при перетаскивании". Но я его включаю всегда smile

Это сообщение отредактировал(а) w1nd - 19.9.2008, 23:29


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
kamre
Дата 20.9.2008, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Решил тут еще попробывать IDEA вместо Eclipse. А у нее такие же косяки с ресайзом:
user posted image
при чем как на ноуте, так и на десктопе.

IDEA 7.04, JDK 1.6.7, при перетаскивании окон в винде стоит отрисовка внутренностей.

Platon, а это на ролике у тебя Nimbus LookAndFeel?
И когда он все перерисовывает внутри окна, только когда отпускаешь кнопку мыши?
PM MAIL   Вверх
Platon
Дата 22.9.2008, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



На ноутбуке что включенный, что неустановленный, одинаково работает.

kamre, да, нимбус. на пк работает тяжко со шлейфами, на ноуте динамично.

Добавлено через 1 минуту и 17 секунд
на ноуте работает нормально, только gridbaglayout меня пугает smile

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  test.rar 279,67 Kb
PM MAIL ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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