2011-11-29 1 views
2

JTabbedPane을 선택할 때 다른 색상을 가진 탭을 만들려고합니다. 예를 들어 탭 A, B 및 C가 있다고 가정 해 봅시다. 탭이 선택되지 않은 경우 탭 색상이 기본값이됩니다. 탭 A를 선택하면 탭 색상이 빨간색으로 바뀝니다. 탭 B를 선택하면 탭 색상이 녹색으로 바뀝니다. 탭 C를 선택하면 탭 색상이 노란색으로 바뀝니다. 이 동작을 어떻게 수행 할 수 있습니까? 내가 찾을 수있는 가장 가까운 방법은 UIManager.put("TabbedPane.selected", Color.RED)이지만이 방법은 선택한 모든 탭의 색상을 빨간색으로 설정합니다.JTabbedPane의 선택된 탭마다 다른 색상을 설정하는 방법은 무엇입니까?

답변

1

선택에 대한 수신기를 추가하고 그에 따라 배경을 변경하십시오. 뭔가 같은 :

pane.addChangeListener(new ChangeListener() { 
    public void stateChanged(ChangeEvent e) { 
     int index = pane.getSelectedIndex(); 
     if(index == 0) { 
     pane.setBackgroundAt(0, Color.RED); 
     } else if(index == 1) { 
     pane.setBackgroundAt(0, Color.GREEN); 
     } 
     ... 
    } 
}); 
+0

이것은 내가 생산하려고하는 행동이 아닙니다. 메서드를 사용하면 모든 탭이 기본 색상으로 시작됩니다. 탭을 선택하면 탭 색상이 코드에 표시된 색상으로 변경되지만 실제로 선택된 것은 기본적으로 선택된 탭 색상입니다. 'setBackgroundAt()'에 전달 된 색상은 새로운 탭이 선택 될 때까지 나타나지 않습니다. – lalalainexd

+0

@lalalainexd 이것은 하나의 예입니다. 필요에 따라 stateChanged 메소드의 코드를 변경할 수 있습니다. 예를 들어 선택되지 않은 탭에 배경색을 기본값 (null 사용)으로 다시 설정합니다. – ugo

+0

@lalalainexd int index = pane.getSelectedIndex(); selectedColor = index == 0? Color.red : index == 1? Color.green : Color.yellow; for (int i = 0; int ugo