레이아웃과 관련하여 거의 모든 것이 변경된 JComboBox가 있습니다. 팝업의 선택 색상, 화살표 버튼, 배경색 등을 변경했습니다. 내가 원하는 방식으로 보이지 않는 마지막 나머지 부분은 팝업의 테두리 색상 (내부 JList)입니다.JComboBox의 내부 팝업 (JList)의 테두리 색상 변경
내 콤보 상자는 다음과 같습니다 당신이 볼 수 있듯이
, 그것은 전체 레이아웃에 일치하지 않는 검은 색 테두리가 있습니다. 위 경계선에서 보게되는 푸른 색으로 바꾸고 싶습니다.
몇 가지 조사를했지만 아무런 해결책이 없었습니다. 가장 가까운 해결책은 post입니다. 그러나 그것은 효과가 없었습니다. 나는 그 경계를 변경하기 위해 별도의 방법을 만들어,
public static void setSelectionColorOfComboBox(JComboBox<String> comboBox)
{
Object child = comboBox.getAccessibleContext().getAccessibleChild(0);
BasicComboPopup popup = (BasicComboPopup) child;
JList list = popup.getList();
list.setBorder(new LineBorder(ColorPalette.LIGHT_BLUE, 1));
list.setSelectionBackground(ColorPalette.LIGHT_BLUE);
list.setSelectionForeground(Color.WHITE);
list.setFocusable(false);
}
아무것도 그리워하지 않도록 만들려면 :
는 seleciton 색상의 변화와 함께, 이미 경계는 다음과 같은 방법으로 색을 변경하려 위의 링크 된 게시물에 따르면 :
public static void setBorderColorOfComboBoxPopup(JComboBox<String> comboBox)
{
Object child = comboBox.getAccessibleContext().getAccessibleChild(0);
BasicComboPopup popup = (BasicComboPopup) child;
JList list = popup.getList();
list.setBorder(new LineBorder(ColorPalette.LIGHT_BLUE));
}
하지만이 역시 작동하지 않았습니다. 누구나 그 일반적인 방법이 나를 위해 작동하지 않는 이유를 아는 사람이 있습니까? 아니면 다른 사람이 최소한 테두리 색을 변경하는 다른 방법을 알고 있으므로 다른 것을 시도 할 수 있습니까?
현재 JList 주변에 스크롤 창과 같은 것이 있으면 생각하고 있습니다. 가능하다면 JList에 액세스하고 테두리를 설정할 수 있는지에 대해 조사 할 것입니다.
예. 감사합니다. 몇 분 전에, 나는 그 해결책에 역시왔다. :) 나는 여전히 최선의 답변으로 표시 할 것입니다. – KJaeg