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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JTable и autoscroll, Че-то я затупил.... 
:(
    Опции темы
Zandr
Дата 11.3.2005, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть:
Код

JScrollPane pane = new JScrollPane();
MyModel model = new MyModel();
MyTable table = new MyTable( model, pane);

Строки добявляются только в конец. Нада чтобы при добавлении строки показывался низ таблицы.
Код

public class MyTable extends JTable {
    private JScrollPane parent;

    public MyTable( MyModel model, JScrollPane parent) {
        super( model);
        this.parent = parent;
        ...
    }

    public void tableChanged(TableModelEvent e) {
        super.tableChanged( e);
        if (e.getType() == TableModelEvent.INSERT) {
            JScrollBar bar = parent.getVerticalScrollBar();
            bar.setValue( bar.getMaximum());
//            bar.setValue( Integer.MAX_VALUE);
        }
...
}

Прокрутка работает через раз. Иногда появляются артефакты. Как правильно-то?
PM MAIL   Вверх
Domestic Cat
Дата 11.3.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Код

Rectangle rectangle = jTable.getCellRect(rowNumber, columnNumber , true);
jTable.scrollRectToVisible(rectangle);



--------------------

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


Опытный
**


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

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



Эффект тот же. Лечится так:
Код

public class MyTable extends JTable {
    private JScrollBar scrollBar;
...

    public MyTable( MyModel model, JScrollPane parent) {
        super( model);
        scrollBar = parent.getVerticalScrollBar();
        ...
    }

    public void tableChanged(TableModelEvent e) {
        super.tableChanged( e);
        ...
        if (e.getType() == TableModelEvent.INSERT) {
            SwingUtilities.invokeLater( scrollToEnd);
        }
    }
...

    private Runnable scrollToEnd = new Runnable() {
        public void run() {
            scrollBar.setValue( Integer.MAX_VALUE);
        }
    };
}


Либо вообще вот так:
Код

public class MyTable extends JTable {
...
    public void tableChanged(TableModelEvent e) {
        super.tableChanged( e);
        ...
        if (e.getType() == TableModelEvent.INSERT) {
            SwingUtilities.invokeLater( scrollToEnd);
        }
    }
...
    private Runnable scrollToEnd = new Runnable() {
        public void run() {
            scrollRectToVisible( new Rectangle( 0, getHeight(), 0, 0));
        }
    };
}


Это сообщение отредактировал(а) Zandr - 11.3.2005, 11:53
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0551 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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