아래 코드 스 니펫과 같이 ListSelectionListener를 사용하는 행 선택 만 허용하는 JTable을 보유하고 있습니다. JTable에는 두 가지 문제가 있습니다.JTable 행 선택 - 이벤트가 발생하지 않고 파란색이 표시되지 않습니다.
Q1) setSelectionRow 메서드를 사용하여 기본적으로 선택된 첫 번째 행을 설정했지만 프로그램 시작시 관련 listSelection 이벤트가 발생하지 않습니다. 첫 번째 행이 아닌 다른 행을 클릭하는 경우에만 이벤트가 발생합니다. 아래 코드를 고려하여이 문제를 해결하려면 어떻게해야합니까?
Q2) 행을 선택하면 JTable에서 파란색으로 표시되지 않습니다. ListSelectionListener를 JTable의 선택 모델에 도입 한 후에 이러한 일이 발생하기 시작했다. 리스너를 추가하기 전에 테이블을 선택했을 때이 색상 비즈니스를 만들고있었습니다. 아래의 코드 스 니펫을 고려하여 수정해야 할 사항은 무엇입니까? 고마워.
jTableBookings = new javax.swing.JTable();
jTableBookings.setModel(new MyBookingTableModel(bookingTableData));
jTableBookings.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jTableBookings.setRowSelectionAllowed(true);
jTableBookings.setCellSelectionEnabled(false);
jTableBookings.setColumnSelectionAllowed(false);
initColumnSizesForMinaBokBokningarJTable(jTableBookings);
//QUESTION 1
//Set selected row to first row for inital load.
if (jTableBookings.getModel().getRowCount() > 0) {
jTableBookings.setRowSelectionInterval(0, 0);
}
//QUESTION 2
jTableBookings.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int sel = jTableBookings.getSelectedRow();
fillBookingRecordFields(sel); //Here we do some business logic based on the selected row
}
});
jScrollPane9.setViewportView(jTableBookings);
작동 빨리 게시 [SSCCE] (HTTP : //pscode.org/sscce.html). –