[英]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.