Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 JTable의 특정 셀을 프로그래밍 방식으로 선택하는 방법

JTableJComponent 클래스의 하위 클래스로, 여러 행과 열에 걸쳐 정보를 표시하는 테이블을 생성하는 데 사용됩니다. JTable에서 값이 선택되면 TableModelEvent가 발생하며, 이 이벤트는 TableModelListener 인터페이스를 구현하여 처리할 수 있습니다.

일반적으로 사용자는 마우스나 키보드를 이용해 JTable의 행과 열을 직접 선택하지만, 코드로도 특정 셀을 자동으로 선택할 수 있습니다. 바로 JTable 클래스에서 제공하는 setRowSelectionInterval()setColumnSelectionInterval() 메서드를 활용하는 방식입니다.

주요 메서드 설명

setRowSelectionInterval(int index0, int index1) : index0부터 index1까지의 행을 선택 범위로 지정합니다.
setColumnSelectionInterval(int index0, int index1) : index0부터 index1까지의 열을 선택 범위로 지정합니다.

두 메서드에 동일한 인덱스를 전달하면 단일 행 또는 단일 열만 선택되며, 서로 다른 값을 전달하면 해당 범위 전체가 한 번에 선택됩니다.

예제 코드

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JTableCellSelectionTest extends JFrame {
    private JTable table;

    public JTableCellSelectionTest() {
        setTitle("JTableCellSelection Test");
        Object[][] data = {
            { "Raja", "Java", "Hyderabad" },
            { "Vineet", "JavaScript", "Bangalore" },
            { "Adithya", "Scala", "Chennai" },
            { "Jai", "ServiceNow", "Pune" },
            { "Chaitanya", "Python", "Noida" },
            { "Krishna", "AI", "Mumbai" }
        };

        String columns[] = { "Name", "Technology", "Location" };
        table = new JTable(data, columns);
        add(new JScrollPane(table));

        // 0행부터 2행까지, 0열부터 2열까지 프로그래밍 방식으로 선택
        table.setRowSelectionInterval(0, 2);
        table.setColumnSelectionInterval(0, 2);

        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String []args) {
        new JTableCellSelectionTest();
    }
}

실행 결과

프로그램을 실행하면 테이블이 화면에 표시되고, 사용자가 아무런 조작을 하지 않았음에도 불구하고 첫 번째 행부터 세 번째 행까지, 그리고 모든 열에 해당하는 셀들이 미리 선택된 상태로 나타납니다.

Java에서 JTable의 특정 셀을 프로그래밍 방식으로 선택하는 방법

참고 사항

사용자가 마우스로 개별 셀을 자유롭게 선택할 수 있도록 하려면 setCellSelectionEnabled(true)를 호출하여 셀 단위 선택 모드를 활성화하는 것이 좋습니다. 또한 위 예제처럼 행과 열의 선택 범위를 동시에 지정하면 두 범위가 교차하는 사각형 영역의 셀들이 일괄 선택되므로, 데이터 강조나 초기 포커스 지정 등에 유용하게 활용할 수 있습니다.