2012-02-27 20 views
1

が無効になっていない私は、タブの複数tabs.Oneを持っているJDialogは、チェックボックスの動的なリストを移入し、その後JTabbedPaneに追加されJPanel .Thisパネルに追加しています。無効]チェックボックスが

この動的リストでは、いくつかの条件に基づいていくつかのチェックボックスを無効にしたいと思います。

無効な状態のチェックボックスを追加しても問題は解決されますが、有効になっています。

なぜこのように動作しているのか、どこに間違っているのでしょうか?次のように

これを達成するために使用されるコードスニペットは、次のとおりです。

private void populateComponents() 
{ 
    cwwObjComponentList = cwwObjOprGeneralSetings.getComponentList(); 
    cwwObjComponentName = cwwObjOprGeneralSetings.getComponentName(); 
    cwwObjComponentWithType = cwwObjOprGeneralSetings.getComponentsWithType(); 

    cwwObjPnlComponents.setLayout(new GridLayout(4, 2)); 

    String mwwStrInstallationType = null; 
    if(Configuration.getParameter(ConfigSettings.InstallationType).equalsIgnoreCase("Enterprise")) 
    { 
     mwwStrInstallationType = StoreSettingsFrame.cwwStrEnterpriseInstallation; 
    } 
    else if (Configuration.getParameter(ConfigSettings.InstallationType).equalsIgnoreCase("Server")) 
    { 
     mwwStrInstallationType = StoreSettingsFrame.cwwStrServerInstallation; 
    } 
    else 
    { 
     mwwStrInstallationType = StoreSettingsFrame.cwwStrClientInstallation; 
    } 


    for (int i = 0; i < cwwObjComponentList.size(); i++) 
    { 
     cwwObjCheckbox = new JCheckBox(cwwObjComponentList.get(i)); 

     String mwwStrComponentType = cwwObjComponentWithType.get(cwwObjComponentList.get(i)); 

     if(mwwStrComponentType.equalsIgnoreCase(mwwStrInstallationType)) 
     { 
      cwwObjCheckbox.setEnabled(true); 
     } 
     else 
     { 
      cwwObjCheckbox.setEnabled(false);//inspite of disabling few checkboxes, all appear to be enabled 
     } 

     cwwObjPnlComponents.add(cwwObjCheckbox); 


    } 
} 
+1

すぐに役立つように、[SSCCE](http://sscce.org/)を投稿してください。 –

+0

チェックボックスの状態を変更するものは何もありませんか? –

+0

はい。再度確認してください。 – shabeena

答えて

3

はこのSSCCEでうまく動作するようです。

DisableMe

import java.awt.*; 
import javax.swing.*; 

class DisableMe { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       JPanel gui = new JPanel(new GridLayout(1,0)); 
       for (int ii=1; ii<7; ii++) { 
        JCheckBox cb = new JCheckBox(""+ii, ii%3==0); 
        cb.setEnabled(ii%2==0); 
        gui.add(cb); 
       } 
       JOptionPane.showMessageDialog(null, gui); 
      } 
     }); 
    } 
} 

あなたのマシン上で期待どおりに動作しますか?

+0

はい、このプログラムは私のmachine.Butで動作しましたが、チェックボックスを無効にしてから(私のソースコードで)追加した場合でも、それ以外の方法で追加した場合、なぜ動作しませんか? – shabeena

+1

OK。SSCCEを取得して投稿します。 – shabeena

関連する問題