Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 被按下时,我的JButton不是';你什么也不做吗?_Java_Swing - Fatal编程技术网

Java 被按下时,我的JButton不是';你什么也不做吗?

Java 被按下时,我的JButton不是';你什么也不做吗?,java,swing,Java,Swing,目前,我已经创建了一个cookie的图像,当按下该图像时,会将1添加到双倍数量。我的问题出现在我的CookieClickingConfig方法中,其中的isPressed似乎不起作用。如果你能帮我弄清楚这是为什么,那将意味着很多。谢谢大家! 我曾尝试添加一个操作侦听器,而不是一个不起作用的isPressed,然后编写了clickerUpgrade方法的代码,而不是从那里引用,这也没有改变任何东西(这意味着问题[很可能]不是从Upgrades类派生的) 主类- import javax.swing

目前,我已经创建了一个cookie的图像,当按下该图像时,会将1添加到双倍数量。我的问题出现在我的CookieClickingConfig方法中,其中的isPressed似乎不起作用。如果你能帮我弄清楚这是为什么,那将意味着很多。谢谢大家!

我曾尝试添加一个操作侦听器,而不是一个不起作用的isPressed,然后编写了clickerUpgrade方法的代码,而不是从那里引用,这也没有改变任何东西(这意味着问题[很可能]不是从Upgrades类派生的)

主类-

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

public class Main {


    public static void main(String args[]) {
        Franels windows = new Franels();
        windows.frameConfig(900, 800);
        windows.cookiePosOrganize();
        windows.amountLConfig();
        windows.cookieLConfig();
        windows.cookieClickingConfig();
    }


}
摇摆班-

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

public class Franels extends MouseAdapter {
    Upgrades cookieUpgrade = new Upgrades();

    double width, height;
    double amount = 0;
    double clickUpgradeCost = 2;
    double cookieClickAmount = 1;

    JFrame cookieGameWindow = new JFrame("Title");

    JPanel cookieHolder = new JPanel();

    JLabel cookieAmount = new JLabel(String.valueOf(amount));
    JLabel cookieImage = new JLabel();

    JButton clickMeasure = new JButton(String.valueOf(clickUpgradeCost));

    ImageIcon image = new ImageIcon();

    public void frameConfig(int width, int height) {
        this.width = width;
        this.height = height;
        cookieGameWindow.setSize(width, height);
        cookieGameWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        cookieGameWindow.setVisible(true);
        cookieGameWindow.setResizable(false);

        cookieGameWindow.add(cookieHolder);
    }

    public void cookiePosOrganize() {
        cookieHolder.setLayout(new GridLayout(3, 1));

        cookieHolder.add(cookieAmount);
        cookieHolder.add(clickMeasure);
        cookieHolder.add(cookieImage);
    }

    public void amountLConfig() {
        cookieAmount.setForeground(Color.black);
        cookieAmount.setFont(new Font("Times New Roman", Font.PLAIN, 48));
        cookieAmount.setHorizontalAlignment(JLabel.CENTER);
        cookieAmount.setVerticalAlignment(JLabel.TOP);
    }

    public void cookieLConfig() {
        cookieImage.setIcon(new ImageIcon("C:\\Users\\cmostero\\Downloads\\Webp.net-resizeimage.png"));
        cookieImage.setIcon(new ImageIcon("C:\\Users\\byeta\\Downloads\\Webp.net-resizeimage.png"));
        cookieImage.setHorizontalAlignment(JLabel.CENTER);

        cookieImage.addMouseListener(new MouseAdapter() {
        public void mousePressed(MouseEvent e) {
            amount += cookieClickAmount;
            cookieAmount.setText(String.valueOf(amount));
            }
        });
    }

    public void cookieClickingConfig() {
        if(clickMeasure.getModel().isPressed()) {
            cookieUpgrade.clickerUpgrade(clickUpgradeCost, amount, cookieClickAmount);
            clickMeasure.setText(String.valueOf(clickUpgradeCost));
        }
    }


}
升级班-

public class Upgrades {

    public void clickerUpgrade(double clickCost, double cookieTotal, double cookieClickAmount) {
        if(cookieTotal >= clickCost) {
            cookieTotal -= clickCost;
            cookieClickAmount += .25;
            clickCost *= (clickCost * .5);
        }
    }


}

您需要运行一个EventQueue才能注册MouseeEvent。然后,您的主类将反映以下内容:

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

public class Main {
    public static void main(String args[]) {
         EventQueue.invokeLater(new Runnable() {
           @Override
           public void run() {
                Franels windows = new Franels();
                windows.frameConfig(900, 800);
                windows.cookiePosOrganize();
                windows.amountLConfig();
                windows.cookieLConfig();
                windows.cookieClickingConfig();
           }
        });
    }
}

1) 为了更快地获得更好的帮助,请添加或。2) 学习常见的Java命名法(命名约定-例如
EachWordUpperCaseClass
firstWordLowerCaseMethod()
firstWordLowerCaseAttribute
,除非它是
大写常量
),并始终如一地使用它。3) 2获取图像以获取中看到的图像的示例热链接。例如,中图像的热链接。@AndrewThompson谢谢,我会在发布时仔细阅读这些链接以备将来参考。不用担心,当你实施这些建议时,我可能会花更多的时间来回答。当然,你可以在任何时候提出一个问题。可能的重复