2010-07-13 3 views
0

Мне нужно сохранить событие щелчка мыши всякий раз, когда пользователь нажимает на столбец таблицы для сортировки.Повторное стрельба Событие MouseListener

Я в основном спасения MouseEven:

public void mouseClicked(MouseEvent e_) 

хранить e_ на глобальной переменной, позже я могу стрелять тот же случай и сортировки таблицы предыдущего действия пользователя сортировки.

Но когда я вручную запускаю предыдущее сохраненное событие мыши, таблица не сортируется.

Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(_mouseEvent); 

Так что в основном это то, как я хочу, чтобы он работал. Пользователь щелкает по столбцу JTable для сортировки. Я хранил созданный MouseEvent в глобальной переменной. Когда JTable снова создается, мне нужно, чтобы он был настроен на предыдущее действие сортировки.
Вот почему мне нужно перезапустить сохраненный MouseEvent, но он не работает. Есть идеи?

+1

Тот факт, что вы воссоздаете таблицу, когда пользователь нажимает на TableHeader для сортировки, вызывает у меня дискомфорт, это похоже на запах кода/предупреждение. – Syntax

ответ

1

Это не имеет никакого отношения к событию мыши. Вы должны сохранить состояние сортировщика строк. Взгляните на RowSorter API. Вы можете восстановить и восстановить это состояние с помощью методов getSortKeys() и setSortKeys(). Очевидно, что вы можете получить RowSorter из своей таблицы, используя метод getRowSorter().

Надеюсь, что это имеет смысл.

+0

Спасибо, это имеет смысл. Я попробую. – Marquinio

+0

Yup, который сделал трюк спасибо. – Marquinio

Смежные вопросы