JList에서 동적으로 선택한 항목의 배경색을 어떻게 바꿀 수 있습니까?JList에서 선택한 항목의 배경색을 동적으로 변경하는 방법
8
A
답변
19
뭔가 : 쉬운 방법은 이클립스에서 디자인 모드로 이동하여 JList의의 속성에, 두가 버튼을 클릭하는 것입니다
public class SelectedListCellRenderer extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (isSelected) {
c.setBackground(Color.RED);
}
return c;
}
}
// During the JList initialisation...
jlist1.setCellRenderer(new SelectedListCellRenderer());
0
명확하게 이해하고 있다면 javax.swing.ListCellRenderer
을 참조하십시오. 다시 구현하거나 javax.swing.DefaultListCellRenderer
을 확장하고 getListCellRendererComponent
메서드를 사용자 정의해야합니다.
1
큰 노란색 화살표가있는 작은 화살표는 "고급 속성 표시"를 엽니 다. 그런 다음 아래로 스크롤하여 "selectionBackground"라고 표시된 곳의 색상을 변경하고 그곳에서 색상을 변경하십시오 (회색 일 것이지만 여전히 변경됩니다). 자, 프로그램을 실행할 때, 무엇을 선택 하든지 배경은 그 색이 될 것입니다.
1
jList1.setSelectedIndex(currentLine);
jList1.setSelectionBackground(Color.red);
그냥 설정 루프에서 색상을 지정하고 색상을 변경하려는 모든 항목의 선택된 색인 따라서!