JComboBox를 만들고 다음 코드를 사용하여 테이블의 특정 열에 대한 셀 편집기로 사용했습니다.
iledgerEditortxt = new JComboBox(buildComboBoxmodel("SELECT ledger_name FROM ledgers"));
AutoCompleteDecorator.decorate(iledgerEditortxt);
TableColumn ledgerColumn = itemsMaintainTable.getColumnModel().getColumn(2);
ledgerColumn.setCellEditor(new ComboBoxCellEditor(iledgerEditortxt));
또한 사용자가 탭 키를 사용하여 테이블의 셀에서 셀로 이동할 수 있도록했습니다. 내가 가진 문제는 탭 사용으로 인해 셀이 포커스를 얻었을 때 사용자가 키보드를 사용하여 편집을 시작할 수 있어야한다는 것입니다. 이것은 JComboBox를 셀 편집기로 사용하는 열을 제외한 모든 경우에서 작동합니다. 해당 열의 경우 사용자는 마우스로 셀을 한 번 클릭 한 다음 키보드에서 입력 할 수 있습니다. 사용자가 탭 키를 사용한 후 입력을 시작할 수 있기를 바랍니다. 도움을 주시면 감사하겠습니다. 감사.
위에서 언급 한 문제에 대한 해결책을 찾았습니다. 다음 링크에서 찾았습니다. 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();
}
}
};
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다