Событие JTable row click, (с моделью по умолчанию), как реализовать [duplicate]

Взгляните на это:

>>> a = 256
>>> b = 256
>>> id(a)
9987148
>>> id(b)
9987148
>>> a = 257
>>> b = 257
>>> id(a)
11662816
>>> id(b)
11662828

EDIT: Вот что я нашел в документации Python 2, «Plain Integer Objects» (То же самое для Python 3 ):

Текущая реализация хранит массив целых объектов для всех целых чисел от -5 до 256, когда вы создаете int в этом диапазоне, на котором вы просто возвращаетесь ссылку на существующий объект. Поэтому должно быть возможно изменить значение 1. Я подозреваю, что поведение Python в этом случае не определено. : -)

20
задан trashgod 12 April 2012 в 21:28
поделиться

5 ответов

Вот как я это сделал:

table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
        public void valueChanged(ListSelectionEvent event) {
            // do some actions here, for example
            // print first column value from selected row
            System.out.println(table.getValueAt(table.getSelectedRow(), 0).toString());
        }
    });

Этот код реагирует на щелчок мышью и выбор элементов с клавиатуры.

40
ответ дан adheus 19 August 2018 в 03:32
поделиться
  • 1
    Вы можете проверить: (! E.getValueIsAdjusting () & amp; & amp; table.getSelectedRow ()! = -1) до System.out.println (table.getValueAt (table.getSelectedRow (), 0) .toString ()); – Rodrigo Garcia 5 October 2016 в 12:55

Я бы рекомендовал использовать Glazed Lists для этого. Это позволяет легко сопоставить структуру данных с моделью таблицы.

Чтобы отреагировать на mouseclick на JTable, используйте ActionListener: ActionListener в JLabel или JTable ячейке

1
ответ дан Community 19 August 2018 в 03:32
поделиться
  • 1
    Итак, я попробовал код, theo e mouselistener, как сохранить в массиве после того, как getSelectedRow () и getSelectedColumn ()? – Brian 12 April 2012 в 19:36

Вы можете использовать событие MouseClicked:

private void tableMouseClicked(java.awt.event.MouseEvent evt) {
 // Do something.
}
-3
ответ дан hexacyanide 19 August 2018 в 03:32
поделиться
  • 1
    Это отвечает только на наиболее очевидную часть вопроса. – Runemoro 8 June 2014 в 19:31

Чтобы узнать, какая строка была выбрана, добавьте ListSelectionListener , как показано в Как использовать таблицы в примере SimpleTableSelectionDemo , A JList можно построить непосредственно из метода toArray() связанного списка, и вы можете добавить к нему подходящий прослушиватель для деталей.

4
ответ дан mKorbel 19 August 2018 в 03:32
поделиться
  • 1
    Если у вас возникли проблемы с реализацией вашего слушателя, отредактируйте свой вопрос, включив в него sscce , который обнаруживает проблему. – trashgod 12 April 2012 в 21:30
 private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {                                     
     JTable source = (JTable)evt.getSource();
            int row = source.rowAtPoint( evt.getPoint() );
            int column = source.columnAtPoint( evt.getPoint() );
            String s=source.getModel().getValueAt(row, column)+"";

            JOptionPane.showMessageDialog(null, s);


} 

, если вы хотите, чтобы нажимать на продажу в jtable, используйте этот способ

3
ответ дан Shinwar Mziri 19 August 2018 в 03:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: