2016-03-02 56 views
0

我用Java初學者和在讀JButton的所有主題,但不明白,如何使這項工作:的JButton可見/可見,如果參數正確

我有類:

class CarMain{ 
public int Money; 
public int Boxes; 
public int MoneyClicks; 
public int BoxesClicks; 
public int PlayerLevel; 
public int BoxLevel; 

}

而且Jbutton將(超過200百),例如:

JButton jbtnPartsLv2 = new JButton("Open"); 

我添加監聽器:

jbtnPartsLv2.addActionListener(this); 

,並設置:

jbtnPartsLv2.setEnabled(false); 

我的想法是,如果聲明是正確的,它設置按鈕點擊:

private void Check() { 
if(CarMain.PlayerLevel >=2){ 
       jbtnPartsLv2.setEnabled(true); 
       jbtnBuyBoxLv2.setEnabled(true); 
       jbtnBuyFrameLv2.setEnabled(true); 
       jbtnBuildCarLv2.setEnabled(true); 
       jbtnSellAccessoriesLv2.setEnabled(true); 
       jbtnSellBodyLv2.setEnabled(true); 
       jbtnSellBrakesLv2.setEnabled(true); 
       jbtnSellCoolingLv2.setEnabled(true); 
       jbtnSellElectronicsLv2.setEnabled(true); 
       jbtnSellEngineLv2.setEnabled(true); 
       jbtnSellExaustLv2.setEnabled(true); 
       jbtnSellFuelLv2.setEnabled(true); 
       jbtnSellInteriorLv2.setEnabled(true); 
       jbtnSellSteeringLv2.setEnabled(true); 
       jbtnSellSuspensionLv2.setEnabled(true); 
       jbtnSellTransmissionLv2.setEnabled(true); 
       jbtnSellTiresLv2.setEnabled(true); 
      } 

}

我開始建立,GameLoop,但並沒有結束它:

public static void main(String[] args) { 

    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     private boolean GameLoop = false; 
     public void run() { 
      GameLoop = true; 
      createAndShowGUI(); 
      while(GameLoop){ 
       Check(); 
      } 
     } 

錯誤,我得到:Cannot make a static reference to the non-static field jbtnPartsLv2

回答

-1

化妝檢查靜態無效的這個樣子。

public static void Check(){ 
if(CarMain.PlayerLevel >=2){ 
      jbtnPartsLv2.setEnabled(true); 
      jbtnBuyBoxLv2.setEnabled(true); 
      jbtnBuyFrameLv2.setEnabled(true); 
      jbtnBuildCarLv2.setEnabled(true); 
      jbtnSellAccessoriesLv2.setEnabled(true); 
      jbtnSellBodyLv2.setEnabled(true); 
      jbtnSellBrakesLv2.setEnabled(true); 
      jbtnSellCoolingLv2.setEnabled(true); 
      jbtnSellElectronicsLv2.setEnabled(true); 
      jbtnSellEngineLv2.setEnabled(true); 
      jbtnSellExaustLv2.setEnabled(true); 
      jbtnSellFuelLv2.setEnabled(true); 
      jbtnSellInteriorLv2.setEnabled(true); 
      jbtnSellSteeringLv2.setEnabled(true); 
      jbtnSellSuspensionLv2.setEnabled(true); 
      jbtnSellTransmissionLv2.setEnabled(true); 
      jbtnSellTiresLv2.setEnabled(true); 
     } 
} 

也使靜態的按鈕,像這樣

static JButton jbtnPartsLv2 = new JButton("Open"); 
+0

使事情靜態 - 是壞主意,特別是對Swing組件。如果他想要使用這些按鈕的幾個面板/對話框呢? –