>  기사  >  Java  >  JTable 셀에서 사용자 정의 유효성 검사를 구현하고 시각적 피드백을 제공하는 방법은 무엇입니까?

JTable 셀에서 사용자 정의 유효성 검사를 구현하고 시각적 피드백을 제공하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-31 02:42:01332검색

How to Implement Custom Validation in JTable Cells and Provide Visual Feedback?

JTable 셀에서 특정 값을 거부하도록 입력 유효성 검사를 사용자 정의하는 방법

JTable은 기본적으로 강제로 변환할 수 없는 값을 거부하여 입력 유효성 검사를 수행합니다. 지정된 열 클래스 유형. 예를 들어 열의 클래스 유형이 정수로 설정된 경우 정수가 아닌 값은 자동으로 거부되고 셀의 윤곽선은 빨간색으로 설정됩니다.

기본 유형 검사 이상으로 셀 입력의 유효성을 검사하려면, 테이블 모델의 setValueAt 메소드를 재정의할 수 있습니다. 그러나 이 접근 방식은 입력이 허용되는 것을 방지할 뿐이며 유형 검사기와 동일한 시각적 피드백을 트리거하지 않습니다.

셀 편집기를 사용하여 사용자 정의 유효성 검사 구현

사용자 정의 유효성 검사 규칙에 대해 동일한 유효성 검사 및 시각적 피드백을 얻으려면 사용자 정의 셀 편집기를 사용하는 것이 좋습니다. 이 경우 다음 작업을 수행하는 DefaultCellEditor의 하위 클래스를 생성합니다.

  • 유효성 검사 규칙(예: 양의 정수)에 대해 입력 값을 확인합니다.
  • 그에 따라 isValid 플래그를 설정합니다.
  • 검증 결과에 따라 셀의 테두리 색상을 설정합니다.

예: 양의 정수에 대한 사용자 정의 셀 편집기

다음은 예입니다. 양의 정수를 검증하고 이에 따라 셀의 테두리 색상을 설정하는 사용자 정의 셀 편집기:

<code class="java">import javax.swing.*;
import javax.swing.table.*;

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>

원하는 열의 셀 편집기를 사용자 정의 구현으로 설정하면 원하는 유효성 검사 동작과 시각적 피드백을 얻을 수 있습니다. 사용자가 양수가 아닌 값을 입력하는 경우.

위 내용은 JTable 셀에서 사용자 정의 유효성 검사를 구현하고 시각적 피드백을 제공하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.