簡體   English   中英

在使用JComboBox作為單元格編輯器的JTable單元格中編輯焦點

[英]Editing focus in a JTable cell that uses a JComboBox as a cell editor

我創建了一個JComboBox,並使用以下代碼將其用作表中特定列的單元格編輯器:

iledgerEditortxt = new JComboBox(buildComboBoxmodel("SELECT ledger_name FROM ledgers"));
AutoCompleteDecorator.decorate(iledgerEditortxt);
TableColumn ledgerColumn = itemsMaintainTable.getColumnModel().getColumn(2);
ledgerColumn.setCellEditor(new ComboBoxCellEditor(iledgerEditortxt));    

我還允許用戶使用Tab鍵在表格中的單元格之間移動。 我遇到的問題是,當由於使用選項卡使單元格獲得焦點時,用戶應該可以使用鍵盤開始編輯。 在使用JComboBox作為單元格編輯器的列之外的所有情況下,此方法均適用。 對於該列,用戶必須用鼠標單擊該單元格一次,然后才能從鍵盤上鍵入內容。我希望用戶在使用Tab鍵后能夠開始鍵入內容。 我將不勝感激任何幫助。 謝謝。

我找到了上述問題的解決方案。 我在以下鏈接上找到它: http : //www.java-forums.org/awt-swing/29040-programmatically-starting-cell-editing-jtable.html該解決方案涉及通過編寫changeselection來修改表的聲明。方法:

JTable table = new JTable(data, columnNames) {
    public void changeSelection(int row, int column, boolean toggle, boolean extend) {
        super.changeSelection(row, column, toggle, extend);
        if (editCellAt(row, column))
        {
            Component editor = getEditorComponent();
            editor.requestFocusInWindow();
        }
    }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM