2013-11-15 5 views
0

이 탭 주변의 테두리 색상을 제거하거나 변경하려면 어떻게합니까?JTabbedpane의 탭 모양을 변경하십시오.

또한 마우스가 마우스를 가리키면 탭 텍스트의 색상이 변경 될 수 있습니까?

enter image description here

+0

당신은 몇 가지 조사를 했나요 : 예를 들어 있습니다 (L & F를 설정 한 후 물론) 다음 코드는 L & F의 기본 속성을보기 위해 실행할 수? – Prasad

+0

@Prasad 예. 이 페이지를 찾았지만 어느 것이 어떤 것인지 이해하지 못합니다. http://www.java2s.com/Tutorial/Java/0240__Swing/CustomizingaJTabbedPaneLookandFeel.htm – ManInMoon

+0

마우스를 가져 가면 탭 텍스트의 색을 변경할 수 있습니다. ** setForeground() **는 사용할 수있는 메서드입니다. – Prasad

답변

1

는 마우스가 유혹 때 탭 텍스트 색상을 변경을 할 수 있습니까?

this answer에 명시된 바와 같이 당신은 JTabbedPane.setTabComponentAt(int index, Component component) 방법으로, 탭 제목을 렌더링에 대한 사용자 정의 구성 요소를 설정할 수 있습니다. 이 탭을 둘러싼 테두리

final JTabbedPane tabbedPane = new JTabbedPane(); 

MouseListener mouseListener = new MouseAdapter() {    
    Color defaultColor; 

    @Override 
    public void mouseEntered(MouseEvent e) { 
     JLabel label = (JLabel)e.getSource(); 
     defaultColor = label.getForeground(); 
     label.setForeground(Color.BLUE); 
    } 

    @Override 
    public void mouseExited(MouseEvent e) { 
     JLabel label = (JLabel)e.getSource(); 
     label.setForeground(defaultColor); 
    } 

    @Override 
    public void mouseClicked(MouseEvent e) { 
     JLabel label = (JLabel)e.getSource(); 
     Point point = SwingUtilities.convertPoint(label, e.getPoint(), tabbedPane); 
     int selectedTab = tabbedPane.getUI().tabForCoordinate(tabbedPane, point.x, point.y); 
     switch(e.getButton()){ 
      case MouseEvent.BUTTON2: tabbedPane.removeTabAt(selectedTab); break; 
       default: tabbedPane.setSelectedIndex(selectedTab); 
     }     
    } 

}; 

JLabel tab1 = new JLabel("Tab1"); 
tab1.addMouseListener(mouseListener);  

tabbedPane.addTab(null, new JPanel()); 
tabbedPane.setTabComponentAt(0, tab1); 

는 어떻게 제거 할 수 있습니다 또는 변경 색상 : 그래서 당신은 이런 식으로 뭔가를 할 수 있습니까?

이 경우 경계선 색상을 결정해야합니다. L & F 기본 속성을 살펴보고이 색상을 변경할 수 있는지 확인해야합니다.

for(Object key : UIManager.getLookAndFeelDefaults().keySet()){ 
    System.out.println(key + " = " + UIManager.get(key)); 
} 
+0

그래서이 링크는 유용하지 않습니까? http://www.java2s.com/Tutorial/Java/0240__Swing/CustomizingaJTabbedPaneLookandFeel.htm – ManInMoon

+0

별로. 나는이 속성들이 Metal Look and Feel에 속한다고 생각한다. 다른 L & F를 사용하는 경우 속성이 변경 될 수 있습니다. @ManInMoon – dic19

+0

예제를 보시기 바랍니다. 나는 당신이'JLabel'을 클릭하면 기본 탭 변경이 손실된다는 것을 알아 차렸다. 그래서'mouseClicked' 이벤트 프로세스를 추가했습니다. 두 번째 버튼 (내 경우 휠)을 누르면 탭이 제거되고, 그렇지 않으면 탭이 선택됩니다. @ManInMoon – dic19

관련 문제