代码之家  ›  专栏  ›  技术社区  ›  Konrad Garus

jtable-复合编辑器焦点

  •  2
  • Konrad Garus  · 技术社区  · 14 年前

    我有一个由几个组件组成的自定义编辑器。类似:

    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 在编辑开始时获取焦点。当我单击单元格时,它工作得很好,但当我使用键盘导航表并开始在该单元格中键入时,它就不工作了。

    我怎么修这个?

    1 回复  |  直到 10 年前
        1
  •  3
  •   crusam    10 年前

    我以前也遇到过同样的问题,花了很长时间才找到解决办法。对FocusListener和其他东西做了很多尝试,但在我找到它之前,似乎没有什么能像我想要的那样工作。 useful article 作者:Santhosh Kumar。

    它写得很好,应该能解决你的问题。