我有一个由几个组件组成的自定义编辑器。类似的东西:
class MyCellEditor extends AbstractCellEditor implements TableCellEditor {
JTextArea textArea;
JButton button;
JPanel panel;
MyCellEditor() {
textArea = new JTextArea();
button = new JButton();
panel = new JPanel(new BorderLayout());
panel.add(textArea, BorderLayout.CENTER);
panel.add(button, BorderLayout.EAST);
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
textArea.setText((String) value);
return panel;
}
public Object getCellEditorValue() {
return textArea.getText();
}
}
我希望内部textArea
在编辑开始时抓住焦点。单击单元格时效果很好,但是当我用键盘导航表并开始在此单元格中输入时,它就不行了。
我该如何解决这个问题?
答案 0 :(得分:3)
前段时间我遇到了同样的问题,并花了很多时间才找到解决方案。用focuslistener和东西尝试了很多,但是在我找到Santhosh Kumar的这个useful article之前,似乎并没有真正按照我想要的方式工作。
写得很好,应该解决你的问题。