Chamadas falsas para setValueAt com JTables no Java 7 no OS X Lion?
Após a atualização para o Lion e o Java 7, estou tendo problemas com o JTables. Quando eu uso as teclas de setas para mover a seleção, sua chamadasetValueAt()
com strings vazias como o valor de edição.
Para testar isso, criei um JFrame simples com uma tabela e configurei a classe a seguir como seu modelo.
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 + "\"");
}
}
Quando eu o executo sob o Java 6, então uso as setas do teclado para percorrê-lo. Funciona bem. por exemplo.
$ 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
No entanto, quando eu o executo no Java 7 (no Lion), e movo a seleção com as teclas de seta, ele acaba chamandosetValueAt()
com cordas vazias.
por exemplo.
$ 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
""
""
""
""
""
$
Eu procurei por bugs, mas não encontrei nada. É um problema conhecido?