> Java > java지도 시간 > 본문

JTable에서 비연속적인 셀 선택을 수행하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-09 01:13:02
원래의
328명이 탐색했습니다.

How to achieve non-continuous cell selection in a JTable?

JTable의 비연속 셀 선택

사용자가 JTable에서 개별 비연속 셀을 선택할 수 있도록 허용하면 유연성과 사용자 편의성이 향상됩니다. 이를 수행하는 방법은 다음과 같습니다.

CTRL MOUSE_CLICK

마지막으로 선택한 셀을 기억하지 않고 비연속 셀 선택을 활성화하려면 Ctrl 키를 누른 채 원하는 셀을 클릭하면 됩니다. . 이 방법을 사용하면 기본 JTable 동작을 수정하지 않고도 쉽고 직접적으로 셀을 선택할 수 있습니다.

ListSelectionModel 구현

또는 비연속 셀 선택을 지원하는 사용자 정의 ListSelectionModel을 구현할 수도 있습니다. 이는 마지막으로 선택한 셀을 유지하거나 사용자 정의 선택 규칙을 구현하는 등 선택 프로세스에 대한 특정 제어가 필요할 때 필요합니다.

다음 코드는 비연속 셀 선택을 위해 사용자 정의 ListSelectionModel을 사용하는 방법을 보여줍니다. JTable:

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;

public class NonContinuousSelectionModel extends DefaultListSelectionModel {

    @Override
    public boolean isSelectedIndexSelected(int index) {
        boolean selected = super.isSelectedIndexSelected(index);
        if (selected) {
            return true;
        }
        int minIndex = getMinSelectionIndex();
        int maxIndex = getMaxSelectionIndex();
        if (minIndex == -1) {
            return false;
        }
        if (index < minIndex || index > maxIndex) {
            return false;
        }
        for (int i = minIndex; i <= maxIndex; i++) {
            if (i == index) {
                continue;
            }
            if (super.isSelectedIndexSelected(i)) {
                return false;
            }
        }
        return true;
    }
}
로그인 후 복사

이 ListSelectionModel을 사용하려면 setSelectionModel을 사용하여 JTable로 설정할 수 있습니다. 방법:

JTable table = new JTable(data, columnNames);
table.setSelectionModel(new NonContinuousSelectionModel());
로그인 후 복사

이 접근 방식을 사용하면 셀 선택 프로세스를 더 효과적으로 사용자 정의하고 제어할 수 있으므로 기본 JTable 동작에서는 지원되지 않을 수 있는 복잡한 선택 시나리오가 가능해집니다.

위 내용은 JTable에서 비연속적인 셀 선택을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿