JTable 셀에서 잘못된 입력을 거부하는 방법
JTable에서 열 클래스 유형을 설정하면 잘못된 입력이 자동으로 빨간색으로 거부됩니다. 정수 열에 이중 값을 입력할 때 표시되는 개요입니다. 그러나 이 동작은 음수 또는 0 값 거부와 같은 사용자 정의 유효성 검사 규칙으로 확장되지 않습니다.
양수가 아닌 입력에 대한 자동 거부 동작을 복제하려면 유효성을 확인하는 사용자 정의 셀 편집기를 만들 수 있습니다.
PositiveIntegerCellEditor
다음 PositiveIntegerCellEditor는 기본 셀 편집기를 확장하여 원하는 유효성 검사를 수행합니다.
<code class="java">private static class PositiveIntegerCellEditor extends DefaultCellEditor { private static final Border red = new LineBorder(Color.red); private static final Border black = new LineBorder(Color.black); private JTextField textField; public PositiveIntegerCellEditor(JTextField textField) { super(textField); this.textField = textField; this.textField.setHorizontalAlignment(JTextField.RIGHT); } @Override public boolean stopCellEditing() { try { int v = Integer.valueOf(textField.getText()); if (v < 0) { throw new NumberFormatException(); } } catch (NumberFormatException e) { textField.setBorder(red); return false; } return super.stopCellEditing(); } @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { textField.setBorder(black); return super.getTableCellEditorComponent( table, value, isSelected, row, column); } }</code>
사용법
지정된 열의 셀을 편집할 때 PositiveIntegerCellEditor는 양수가 아닌 입력을 거부하고 셀 윤곽선을 빨간색으로 표시하며 셀 편집 완료를 방지합니다.
제공된 코드에는 향상된 기능도 포함되어 있습니다. 셀 편집 중 오른쪽 정렬 및 오류 처리.
부록
이 기사에서는 JTable의 셀 편집 유효성 검사에 대한 추가 리소스에 대한 링크도 제공합니다.
위 내용은 다음은 질문 기반이며 기사 내용과 일치하는 몇 가지 제목 옵션입니다. * JTable 셀에 대한 사용자 정의 유효성 검사 규칙을 적용하는 방법은 무엇입니까? * Inv를 거부하기 위해 사용자 정의 셀 편집기를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!