我这里有一个非常简单的演示程序,对于不那么短的代码版本感到抱歉,但它是我能做的最短的代码。无论如何,我在这里有一个jtable
,其中包含第2列的可编辑单元格。我希望右侧的小键盘append
转到selected cell
的{{1}},但是{{} 1}}不这样做。有没有办法将右侧的小键盘附加到选定的小区?或者我应该
jtable
修改
当我点击小键盘时,它应该附加到所选单元格,就像你点击小键盘一样,只插入一个小号。我希望这些数字附加在选定的单元格中。
答案 0 :(得分:6)
我希望这些数字附加在选定的单元格中。
然后将数字附加到现有值。
例如,“7”按钮的代码可能类似于:
int row = table.getSelectedRow();
int column = table.getSelectedColumn();
String value = table.getValueAt(row, column) + "7";
table.setValueAt(value, row, column);
当然,更好的解决方案是使用常见的ActionListener,然后您可以使代码更通用:
int row = table.getSelectedRow();
int column = table.getSelectedColumn();
String value = table.getValueAt(row, column) + e.getActionCommand();
table.setValueAt(value, row, column);
action命令只是默认为按钮的字符串。
答案 1 :(得分:3)
不要忘记检查是否已选择列和行(所选行和列索引不是-1):
public void actionPerformed(ActionEvent e) {
int selectedRow = table.getSelectedRow();
int selectedColumn = table.getSelectedColumn();
// **** better first check that user has selected something
if (selectedRow < 0 || selectedColumn < 0) {
return;
}
// **** next make sure cell is editable
if (table.isCellEditable(selectedRow, selectedColumn)) {
// get current value
String value = table.getValueAt(selectedRow, selectedColumn).toString();
// append new value
value += "7"; // or actionCommand as per camickr -- 1+ to his answer.
table.setValueAt(value, selectedRow, selectedColumn);
}
}