JTable 셀의 잘못된 입력 방지
JTable 구성 요소는 정수와 같은 특정 데이터 유형에 대한 내장 유효성 검사 기능을 제공합니다. 그러나 기본적으로 음수 또는 0 값은 처리하지 않습니다. 사용자 정의 유효성 검사 규칙을 구현하려면 사용자 정의 셀 편집기 클래스를 생성할 수 있습니다.
해결책:
입력을 검증하는 TableModel을 사용하는 대신 다음과 같이 DefaultCellEditor의 하위 클래스를 생성합니다. 다음:
<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; textField.setHorizontalAlignment(JTextField.RIGHT); // Align right for positive numbers } @Override public boolean stopCellEditing() { try { int value = Integer.valueOf(textField.getText()); if (value < 0) { throw new NumberFormatException(); } } catch (NumberFormatException e) { textField.setBorder(red); // Highlight invalid input return false; } textField.setBorder(black); // Reset border for valid input return super.stopCellEditing(); } }</code>
이 사용자 정의 편집기는 사용자 입력을 확인하고 잘못된 값(음수 또는 0)에 대해 빨간색 테두리를 표시합니다.
구현:
사용자 정의 편집기를 인스턴스화하고 원하는 열에 대해 설정합니다.
<code class="java">JTextField integerField = new JTextField(); PositiveIntegerCellEditor integerEditor = new PositiveIntegerCellEditor(integerField); table.getColumnModel().getColumn(columnIndex).setCellEditor(integerEditor);</code>
이 솔루션은 정수 입력에 대한 기본 편집기의 동작을 모방하여 음수 또는 0 값을 거부하고 유효하지 않은 셀을 강조 표시합니다.
위 내용은 JTable 셀에서 음수 또는 0 값을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!