초기 질문:
행 확인을 목표로 합니다. ItemEvent가 트리거될 때 특정 셀 내의 JComboBox를 포함하는 JTable 내의 번호 JComboBox. 이 행 번호는 JComboBox 수정 후 동일한 행의 다른 셀과 관련된 후속 작업에 중요합니다.
응답:
JComboBox를 다음과 같이 활용하고 있는 것 같습니다. JTable 내의 편집기. 이러한 시나리오에서 TableCellEditor 클래스의 getTableCellEditorComponent() 메서드는 해당 매개변수 중 하나로 행에 대한 액세스를 제공합니다. 자세한 내용은 다음 리소스를 참조하세요.
값 동기화에 대한 부록:
값을 동기화하려면 JComboBox 열과 종속 열의 관계는 테이블 모델의 getValueAt() 메서드를 재정의합니다. 이를 통해 JComboBox 열의 변경된 내용을 기반으로 업데이트된 값을 반환할 수 있습니다.
추가 예:
아래 코드는 종속 열을 유지하는 이 접근 방식을 보여줍니다. 재정의된 getValueAt() 메서드를 사용하여 JComboBox 열과 동기화됩니다.
import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; public class Example { private static final int DEPENDENT_COL = 1; private static final int ITEM_COL = 2; private static final String[] columnNames = {"Col 1", "Col 2", "Col 3"}; public static void main(String[] args) { // Create table model DefaultTableModel model = new DefaultTableModel(columnNames, 0) { @Override public Object getValueAt(int row, int col) { if (col == DEPENDENT_COL) { return "C2:" + this.getValueAt(row, ITEM_COL); } else { return super.getValueAt(row, col); } } }; // Add rows to table model for (int i = 0; i < 16; i++) { model.addRow(new Object[] {"C1", "C2", "Item1"}); } // Create table and customize JComboBox column JTable table = new JTable(model); TableColumn col = table.getColumnModel().getColumn(ITEM_COL); String[] items = {"Item1", "Item2", "Item3"}; JComboBox combo = new JComboBox(items); col.setCellEditor(new DefaultCellEditor(combo)); // Create the frame and add the table JFrame frame = new JFrame(); frame.add(new JScrollPane(table)); frame.pack(); frame.setVisible(true); } }
위 내용은 ItemEvent를 트리거한 JComboBox를 포함하는 JTable 행을 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!