Взгляните на это:
>>> 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 в этом случае не определено. : -)
Вот как я это сделал:
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());
}
});
Этот код реагирует на щелчок мышью и выбор элементов с клавиатуры.
Я бы рекомендовал использовать Glazed Lists для этого. Это позволяет легко сопоставить структуру данных с моделью таблицы.
Чтобы отреагировать на mouseclick на JTable, используйте ActionListener: ActionListener в JLabel или JTable ячейке
Вы можете использовать событие MouseClicked
:
private void tableMouseClicked(java.awt.event.MouseEvent evt) {
// Do something.
}
Чтобы узнать, какая строка была выбрана, добавьте ListSelectionListener
, как показано в Как использовать таблицы в примере SimpleTableSelectionDemo
, A JList
можно построить непосредственно из метода toArray()
связанного списка, и вы можете добавить к нему подходящий прослушиватель для деталей.
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, используйте этот способ