>  기사  >  Java  >  JTable에서 비연속 셀 선택을 활성화하려면 어떻게 해야 합니까?

JTable에서 비연속 셀 선택을 활성화하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-12 11:49:01282검색

How Can I Enable Non-Continuous Cell Selection in a JTable?

JTable에서 비연속 셀 선택을 활성화하는 방법

표준 JTable 구현에서 사용자는 연속 셀 그룹만 선택할 수 있습니다. 그러나 개별적이고 비연속적인 셀 선택을 허용하도록 이 동작을 사용자 정의하는 방법이 있습니다.

방법 1: CTRL 수정자 사용

JTable의 선택 모드가 ListSelectionModel.SINGLE_SELECTION으로 설정되어 있습니다. CTRL 키를 누른 채 비연속 셀을 클릭하면 해당 셀이 선택됩니다.

방법 2: processMouseEvent 메서드 재정의

선택 동작을 더 효과적으로 제어하려면 JTable 하위 클래스의 processMouseEvent 메서드를 재정의할 수 있습니다. 재정의된 메서드에서는 수정자를 수정하여 마우스 이벤트를 처리하는 동안 Ctrl 키가 눌려져 있음을 JTable에 알릴 수 있습니다.

다음은 예제 코드 조각입니다.

public class Ctrl_Down_JTable extends JTable {

    private static final long serialVersionUID = 1L;

    @Override
    protected void processMouseEvent(MouseEvent e) {
        int modifiers = e.getModifiers() | InputEvent.CTRL_MASK;
        int modifiersEx = e.getModifiersEx() | InputEvent.CTRL_MASK;
        MouseEvent myME = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), modifiers, e.getX(),
                e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton());
        super.processMouseEvent(myME);
    }
}

메서드 3: 사용자 정의 ListSelectionModel 사용

또 다른 옵션은 비연속 셀 선택을 지원하는 사용자 정의 ListSelectionModel. 여기에는 DefaultListSelectionModel 클래스를 확장하고 특정 메서드를 재정의하여 원하는 기능을 구현하는 작업이 포함됩니다.

참고:

  • 비연속 셀 선택 동작은 상황에 따라 달라질 수 있습니다. 사용 중인 운영 체제 및 Swing 버전에 따라 달라집니다.
  • 사용자 정의 선택 모델을 사용할 때 잠재적인 성능 영향을 인지하고 적합한지 확인하세요. 귀하의 신청서에 대한 구체적인 요구 사항을 충족하세요.

위 내용은 JTable에서 비연속 셀 선택을 활성화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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