Java 在actionPerformed()方法之外使用变量

Java 在actionPerformed()方法之外使用变量,java,swing,user-interface,Java,Swing,User Interface,我对Java还比较陌生,所以决定在Swing上搞点乱。我想构建一个应用程序,根据按钮点击向上或向下更新计数器 一切都很顺利,直到我不得不在其中一个按钮上添加一个侦听器。我添加了一个按钮并修改了我在网上找到的一段代码: addHome.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //Execute when

我对Java还比较陌生,所以决定在Swing上搞点乱。我想构建一个应用程序,根据按钮点击向上或向下更新计数器

一切都很顺利,直到我不得不在其中一个按钮上添加一个侦听器。我添加了一个按钮并修改了我在网上找到的一段代码:

    addHome.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {
            //Execute when button is pressed
            addHomeCount++;
        }
    });
我希望在单击按钮时增加addHomeCount。如果我加上

System.out.println(addHomeCount);
在该方法中,它将代码完美地输出到控制台窗口。但是,当我在方法之外添加相同的代码时,它只返回0


有没有办法在actionPerformed方法之外获取递增的addHomeCount整数并将其放入JLabel中?我已经读过getActionCommand(),但我不确定这是否就是我在这里要找的

它打印0的原因是监听器外部的代码会立即执行。侦听器代码仅在按下按钮时执行,因此直到print语句之后才发生

我认为您需要做的就是从action listener内部设置JLabel文本

JLabel addHomeLabel = new JLabel();
//add label to gui...
addHome.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
        //Execute when button is pressed
        addHomeCount++;
        addHomeLabel.setText("Button pressed " + addHomeCount);

    }
});

“我不确定你是否需要以下内容”我确定你不需要。@AndrewThompson谢谢-我不经常挥杆来记住你什么时候需要挥杆,什么时候不需要挥杆;-)如果您对某些事情不确定,您希望提供帮助并解决知识缺口,同时有一个简单的方法可以遵循:启动您的开发环境并尝试您将要发布的代码。