>Java >java지도 시간 >JTable 헤더에 모두 선택/없음 컨트롤을 추가하는 방법은 무엇입니까?

JTable 헤더에 모두 선택/없음 컨트롤을 추가하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-19 12:19:10958검색

How to Add a Select All/None Control to a JTable Header?

JTable 헤더에 컨트롤 삽입 방법

JTable 헤더에 컨트롤을 삽입하면 컬럼 관리가 편리해집니다. 부울 열의 확인란을 모두 선택하거나 전혀 선택하지 않는 등의 데이터입니다. 다음은 JTable 헤더에서 제대로 작동하는 컨트롤의 필요성을 해결하는 포괄적인 접근 방식입니다.

SelectAllHeader 클래스를 사용한 구현

SelectAllHeader 클래스는 JToggleButton을 확장하고 TableCellRenderer를 구현하여 다음을 수행합니다. 지정된 부울 열의 확인란을 제어하는 ​​토글 버튼을 만듭니다. 토글 버튼을 클릭하면 해당 열의 모든 확인란이 선택 또는 선택 취소 상태로 설정됩니다.

class SelectAllHeader extends JToggleButton implements TableCellRenderer {

    private static final String ALL = "✓ Select all";
    private static final String NONE = "✓ Select none";
    // ...

    public SelectAllHeader(JTable table, int targetColumn) {
        // ...
    }

    @Override
    public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected,
        boolean hasFocus, int row, int column) {
        return this;
    }
    // ...
}

사용

이 컨트롤을 사용하려면 다음을 추가하세요. 지정된 열에 대한 헤더 렌더러로 사용:

TableColumn tc = table.getColumnModel().getColumn(BOOLEAN_COL);
tc.setHeaderRenderer(new SelectAllHeader(table, BOOLEAN_COL));

추가 기능

SelectAllHeader 클래스는 열의 확인란 상태를 확인하고 그에 따라 자체 상태를 전환합니다. 또한 원하는 열에서만 토글 버튼이 클릭되도록 마우스 이벤트를 처리합니다.

결론

SelectAllHeader 클래스를 활용하면 웰을 쉽게 삽입할 수 있습니다. -JTable 헤더의 동작 제어로 부울 열의 모든 확인란을 선택하거나 선택 취소하는 편리한 방법을 제공합니다. 이 접근 방식은 유연하며 체크박스 렌더러를 사용하는 모든 열에 적용할 수 있습니다.

위 내용은 JTable 헤더에 모두 선택/없음 컨트롤을 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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