2011-12-24 2 views
1

개체의 모양과 느낌을 변경하는 데 약간의 문제가 있습니다. 내 응용 프로그램에서 나는JTable and Look and Feel

public class JavaCommander extends JFrame 

이이 클래스에서 나는 내 자신의 테이블 모델로 구성되어 JTable가 있습니다. 모든 것이 잘 작동하지만, 내가 말했듯이 내가 룩앤필을 바꾸고 싶을 때 문제가있다. 메뉴 막대에는 사용할 수있는 룩앤필이있는 메뉴가 있습니다.

menuBar=new JMenuBar(); 
    JMenu lookMenu=new JMenu("Look and Feel"); 

    UIManager.LookAndFeelInfo[] info= UIManager.getInstalledLookAndFeels(); 
    ButtonGroup group=new ButtonGroup(); 

    for (int i=0;i<info.length;++i) 
    { 
     JRadioButtonMenuItem but=new JRadioButtonMenuItem(info[i].getClassName()); 
     but.addActionListener(new ActionListener() 
     { 

      public void actionPerformed(ActionEvent e) 
      { 
       try { 
        UIManager.setLookAndFeel(e.getActionCommand()); 
        SwingUtilities.updateComponentTreeUI(JavaCommander.this); 
        table.setShowGrid(true); 
       } catch (ClassNotFoundException e1) { 
        e1.printStackTrace(); 
       } catch (InstantiationException e1) { 
        e1.printStackTrace(); 
       } catch (IllegalAccessException e1) { 
        e1.printStackTrace(); 
       } catch (UnsupportedLookAndFeelException e1) { 
        e1.printStackTrace(); 
       } 

      } 

     }); 
     lookMenu.add(but); 
     group.add(but); 
    } 
    menuBar.add(lookMenu); 

버튼 중 하나를 클릭하면 내 애플리케이션의 모양과 느낌이 바뀌어야합니다. 내가 모든 것을 변경을 할 수 있지만 테이블의 요소 주위의 격자가없는 때 그래서 나는

table.setShowGrid(true); 

는 격자 모양과 느낌을 변경 한 후 실종가는 것이 정상적인 동작입니다을 추가 할 필요가?

+1

Nimbus는 여러 장소에서 자체 청소를하지 않기 때문에 심하게 오동작합니다. 테이블 눈금 선은 그 중 하나 일뿐입니다. 더 많은 먼지를 준비하십시오 .-( – kleopatra

답변

4

모양과 느낌을 변경 한 후에 표가 사라지는 정상적인 동작입니까?

일부 PLAF는 페인트하지 않습니다.


난 그냥 this question 다른 PLAFs에있는 테이블의 몇 가지 예를 들어 이미지에 핫 링크에 대해이었다. 그런 다음 소스가 설명하는 것과 동일한 문제를 보여줍니다.

PLAF 바 Nimbus에서 셀 테두리/격자 선을 가져올 수 있습니다. 그러나 Nimbus가 선택되면 다른 PLAF는 더 이상 셀 테두리를 표시하지 않습니다. :

+0

Ok, 일반적인 문제인 것처럼 보입니다. 내가 잘못한 것을 생각하면, setShowGrid를 사용할 것입니다. – Andna