2014-04-17 1 views
0

JTabbedPanes를 중첩하면 부모와 자식 사이에 눈에 띄는 색상이 변경됩니다.중첩 된 JTabbedPanes 시각적 결함

Alt text goes here.

가 어떻게 전환 부드러운을 만드는 방법에 대한 얻을 것입니다 :

여기에 문제를 설명하는 스크린 샷이다?

다른 레이아웃이나 구성 요소를 사용하는 것과 관련하여 다른 대안이 있습니까?

답변

1

JTabbedPane이 투명하지 않기 때문입니다. 하지만,

JTabbedPane outer = new JTabbedPane(); 
outer.setOpaque(false); 
// ... 
// creating inner pane "Modificar" 
JTabbedPane modificar = new JTabbedPane(); 
modificar.setOpaque(false); 
outer.addTab("Modificar", modificar); 

모든 느낌 & 보이는에 그것은 작동하지 않을 수 있습니다 :, 탭이 창에서 예컨대을 setOpaque(false)를 호출하려고합니다. 예를 들어, GTK L & F는 JToolbar에있는 setOpaque()에 대한 호출을 무시합니다.

또 다른 방법은 예를 들어 단일 ButtonGroup 대신 JTabbedPane, 그룹화 투명 FlowLayoutJPanelJToggleButton 및 S를 사용하는

private void initComponents() { 
    JTabbedPane outer = new JTabbedPane(); 
    outer.setOpaque(false); 
    // ... 

    JPanel innerPane = new JPanel(); 
    innerPane.setOpaque(false); 
    innerPane.setLayout(new FlowLayout()); 

    ButtonGroup group = new ButtonGroup(); 
    addButton(innerPane, group, new JToggleButton("alta"));  
    addButton(innerPane, group, new JToggleButton("Modificar")).setSelected(true); 
    addButton(innerPane, group, new JToggleButton("compraTarifa")); 

    outer.addTab("Socios", innerPane); 

    // ... 
} 

private static <T extends AbstractButton> T addButton(Component parent, ButtonGroup group, T btn) { 
    group.add(btn); 
    parent.add(btn); 
    return btn; 
} 
+0

자세한 답변을 보내 주셔서 감사합니다. 나는 그것을 시험 할 수있는 한 빨리 이것을 받아 들일 것이다. 건배 – MBlanc