2011-12-24 12 views
1

オブジェクトのルックアンドフィールを変更することには小さな問題があります。私のアプリでは、私はJTableとルックアンドフィール

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); 

ボタンの1つをクリックすると、アプリケーションのルックアンドフィールが変更されるはずです。私はすべての変更を行いますが、テーブルの要素の周りのグリッドはので、私は

table.setShowGrid(true); 

を追加する必要が欠落している場合しかし、それはグリッドが外観を変更した後、行方不明になり、感じることは正常な動作ですか?

+1

Nimbusはいくつかの場所で自分自身の背後に掃除しないことによって、重大な誤操作をしています。テーブルグリッド線はそれらの1つです - より多くの汚れのために準備してください:-( – kleopatra

答えて

4

ルック・アンド・フィールの変更後にグリッドが欠落するのは正常な動作ですか?

一部のPLAFはペイントしません。


私はthis questionで、ちょうどホットリンクに異なるPLAFs内のテーブルのいくつかのサンプル画像としていました。それから、ソースはあなたが記述したものと同じ問題を示していることに気付きました!

PLAFバーのNimbusでセルの枠線やグリッド線を取得できます。しかし、いったんNimbusが選択されると、他のPLAFのどれもがセル境界を示さなくなります。 :

+0

Ok、それはよくある問題です私が間違ったことをしたと思って、setShowGridを使用します。 – Andna

関連する問題