> Java > java지도 시간 > ItemEvent 중에 JTable 셀 내에서 JComboBox의 행 인덱스를 검색하는 방법은 무엇입니까?

ItemEvent 중에 JTable 셀 내에서 JComboBox의 행 인덱스를 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-09 12:58:11
원래의
896명이 탐색했습니다.

How to Retrieve the Row Index of a JComboBox Within a JTable Cell During an ItemEvent?

ItemEvent 중 JTable 셀에서 JComboBox의 셀 행을 가져오는 방법

JTable에서 JComboBox를 셀 편집기로 사용하는 경우 , ItemEvent 중에 변경된 JComboBox와 연관된 행을 얻는 것이 어려울 수 있습니다. 이 정보는 JComboBox의 변경 사항에 따라 업데이트할 때 동일한 행의 다른 열에 액세스하는 데 중요합니다.

해결책:

이 문제를 해결하는 열쇠는 다음을 이해하는 것입니다. TableCellEditor의 재정의된 메서드인 getTableCellEditorComponent()에는 행이 매개변수로 포함됩니다. 다음은 이를 활용하는 솔루션입니다.

import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class JComboBoxCellRowAccess {

    public static void main(String[] args) {
        JTable table = createTable();
        JComboBox<String> comboBox = new JComboBox<>(new String[] { "Item1", "Item2", "Item3" });
        TableColumn column = table.getColumnModel().getColumn(1);
        column.setCellEditor(new DefaultCellEditor(comboBox));

        comboBox.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                int row = getCellRow(comboBox);
                System.out.println("Row: " + row);
            }
        });
    }

    public static int getCellRow(JComboBox<?> comboBox) {
        TableCellEditor editor = comboBox.getCellEditor();
        if (editor != null) {
            Component component = editor.getTableCellEditorComponent(null, null, true, -1, -1);
            return ((JTable) component.getParent()).getSelectedRow();
        }
        return -1;
    }

    public static JTable createTable() {
        DefaultTableModel model = new DefaultTableModel(new Object[][] { { "Row 0" }, { "Row 1" }, { "Row 2" } }, new String[] { "Column 1" });
        return new JTable(model);
    }
}
로그인 후 복사

이 솔루션을 사용하면 ItemListener 내의 JComboBox 행에 액세스할 수 있으므로 필요에 따라 동일한 행에 있는 다른 열의 정보를 업데이트하거나 검색할 수 있습니다.

위 내용은 ItemEvent 중에 JTable 셀 내에서 JComboBox의 행 인덱스를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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