【问题标题】:JButton Invisible/Visible if arguments correct如果参数正确,JButton 不可见/可见
【发布时间】:2016-03-02 16:30:13
【问题描述】:

我是 Java 初学者,正在阅读 JButton 的所有主题,但不明白如何使其工作。:

我上课了:

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

}

还有JButtons(超过20000个)例如:

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

【问题讨论】:

    标签: java jbutton


    【解决方案1】:

    像这样检查一个静态的 void。

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

    【讨论】:

    • 使事物静态化 - 是个坏主意,尤其是对于 Swing 组件。如果他想要几个带有这些按钮的面板/对话框怎么办?
    猜你喜欢
    • 2011-08-04
    • 2013-03-14
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    相关资源
    最近更新 更多