Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
4 / 4 / 0
Регистрация: 22.10.2007
Сообщений: 234

Событие JTable вызывается два раза, а нужно один..

26.12.2007, 12:54. Показов 2251. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть таблица JTable
Обрабатываю у нее событие выбора строки следующим образом:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ListSelectionModel rowSM = jTable1.getSelectionModel();
rowSM.addListSelectionListener(new MainFrame_jTable1List_SelectionListener());
// ...
  void jTable1_selectionPerformed(ListSelectionEvent e) {
   if (jTable1.getSelectedRow() != -1) {
    //запуск метода 'МЕТОД'
   }
  }
// ...
 
class MainFrame_jTable1List_SelectionListener implements ListSelectionListener {
    public void valueChanged(ListSelectionEvent e) {
      jTable1_selectionPerformed(e);
    }
  }
Проблема в том, что метод 'МЕТОД' выполняется по два раза при каждом выборе!!! Т.е. при каждом выборе строки в таблице событие возбуждается 2 раза... Это не есть то, что мне нужно.
Вопрос: в чем дело? Что делать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.12.2007, 12:54
Ответы с готовыми решениями:

Событие OnData у Virtual ListView вызывается два раза для одного Item'a
Тестил работу процедуры OnData у виртуального ListView и при отладке заметил такое, что событие срабатывает два раза для каждого item'a...

два раза вызывается событие live.() после load загрузки объекта jquery
два раза вызывается событие $("$btn").live("click",function()) после load загрузки объекта кнопки например! как избежать этого? ...

Конструктор вызывается один раз, а деструктор два раза
Программа для обработки исключений. Вообщем если ввести два числа и второе будет 0, то конструктор будет вызван 1 раз, а деструктор 2...

3
4 / 4 / 0
Регистрация: 22.10.2007
Сообщений: 234
26.12.2007, 16:39  [ТС]
Еще одно наблюдение: это происходит, только когда щелкаем мышкой по строке, если же перемещаться по таблице стрелками, то все в порядке...
Моих мозгов пока не хватает, чтобы самому понять почему это происходит..... Может, надо как-то отключить обработку событий мыши для таблицы?
0
mishgun
26.12.2007, 18:35
Я думаю что по дефолту стоит двойной клик у мыши поэтому такая катавасия и получается(я точно не знаю так как не сталкивался с таким но по логике получается так)
в MouseEvent есть метод int i = mouseEvent.getClickCount() попробуй с его помощью посмотреть сколько было кликов
3 / 3 / 3
Регистрация: 07.11.2007
Сообщений: 270
30.12.2007, 08:10
Как я понял, вы работаете в БИЛДЕРЕ. Не знаю, поможет ли вам это (я работаю по старинке - из командной строки):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// ....
JTable currencyTable;
CurrencyTableModel ctm;           // Определен где-то дальше
ListSelectionModel lsm;
int selectedRow = 0;
// ...
ctm = new CurrencyTableModel ();
ctm.prepareInformation ();
currencyTable = new JTable (ctm);
currencyTable.setAutoResizeMode (JTable.AUTO_RESIZE_OFF);
currencyTable.setPreferredScrollableViewportSize (new Dimension (150, 150));
currencyTable.setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
lsm = currencyTable.getSelectionModel ();
// ...
 
// Собственно сам обработчик перемещения и отслеживания
// текущей строки JTable
lsm.addListSelectionListener (new ListSelectionListener () {
    public void valueChanged (ListSelectionEvent e) {
       if (e.getValueIsAdjusting ()) return;
          ListSelectionModel l = (ListSelectionModel)e.getSource ();
          // Номер текущей строки таблицы
          if (! l.isSelectionEmpty ()) {
              selectedRow = l.getMinSelectionIndex ();
          }
    }
});
Если что непонятно - мыльте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.12.2007, 08:10
Помогаю со студенческими работами здесь

Два раза вызывается деструктор
Создал класс, в процессе выполнения программы вызвал деструктор, но когда программа завершается, деструктор вызывается повторно и вылетает...

Событие выбора строки при выборе мышкой событие обрабатывается два раза
Есть JTable, обрабатываю событие выбора строки след. образом: ListSelectionModel r = jTable1.getSelectionModel(); ...

Почему деструктор вызывается два раза
Всем привет. Есть код, для примера #include <vector> using namespace std; struct AA { int n; AA() :n(0) { cout <<...

ReadDirectoryChangesW FILE_ACTION_MODIFIED вызывается два раза
При изменении файла FILE_ACTION_MODIFIED вызывается два раза, не могу понять почему? int _tmain(int argc, _TCHAR* argv) { BYTE...

Виртуальный деструктор вызывается два раза
Здравствуйте, у меня есть базовый и производный классы с динамическими массивами, я создаю массив указателей на базовый класс пытаюсь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru