1
我想:JTable中:在选项卡中选择下一个单元格,但首先重点选择相同的细胞,而不是下一个
- 有一个按钮添加一行到一个JTable
- 在创建该行,给它焦点并开始编辑第一列
- 当用户按下Tab键时,选择下一列。
对于添加按钮,我这样做:
add_button.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
int row = table_model.addRow();
table.setRowSelectionInterval(row, row);
table.scrollRectToVisible(table.getCellRect(row, 0, true));
table.editCellAt(row, 0);
table.transferFocus();
did_add = true;
}
});
这确实导致表单元格采取集中并开始编辑。为了确保按Tab键选择下一个单元格,我有这样的:
table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0, false), "selectNextColumnCell");
这里是我的问题:
- 如果我以前所做的任何细胞的选择,这完美的作品。我可以编辑第一列,然后按Tab键,这会导致选择下一列。
- 但是,如果是新创建该表或表外的一些小部件以前有重点,我点击我的Add按钮,然后出现这种情况:
- 第一列是正确选择,是编辑
- 当我按下Tab键,通常在同一小区的重点是
- 我必须按Tab第二次去到下一列
- 有时,第一个选项卡实际上进入细胞0,0
因此,它似乎是,虽然小区集中和正在编辑的东西是歪与表的焦点,因为它是不正确哪些细胞是下一个。
我曾尝试包括设置焦点表中的几个变通,但似乎没有工作(requestFocus的,requestFocusInWindow,设置表的选择等)。
任何想法如何解决这一问题?
谢谢!这解决了问题! –