Ложные вызовы setValueAt с JTables в Java 7 на OS X Lion?
После обновления до Lion и Java 7 у меня возникают проблемы с JTables. Когда я использую клавиши со стрелками для перемещения выделения, его вызовsetValueAt()
с пустыми строками в качестве значения для редактирования.
Чтобы проверить это, я создал простой JFrame с таблицей в нем и установил следующий класс в качестве модели.
public class SpyModel extends AbstractTableModel {
public int getColumnCount() { return 5; }
public int getRowCount() { return 5; }
public Object getValueAt(int rowIndex, int columnIndex) { return ""; }
public boolean isCellEditable(int rowIndex, int columnIndex) { return true; }
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
System.out.println(aValue == null ? "null" : "\"" + aValue + "\"");
}
}
Когда я запускаю его под Java 6, а затем использую клавиши со стрелками для перемещения по нему. это работает отлично. например
$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)
$ java -jar JavaApplication5.jar
Однако, когда я запускаю его под Java 7 (на Lion) и перемещаю выделение с помощью клавиш со стрелками, он вызываетsetValueAt()
с пустыми строками.
например
$ java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
$ java -jar JavaApplication5.jar
""
""
""
""
""
$
Я искал ошибки, но ничего не придумал. Это известная проблема?