gpt4 book ai didi

java - 在封闭范围内定义的局部变量计数必须是最终错误

转载 作者:行者123 更新时间:2023-12-02 02:12:01 24 4
gpt4 key购买 nike

我编写了一些简单的代码,以便每次单击按钮时进度条都会增加一。这是我的代码。

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JProgressBar;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class BtnProgTest extends JFrame {

private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
BtnProgTest frame = new BtnProgTest();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public BtnProgTest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);


JProgressBar progressBar = new JProgressBar();
progressBar.setStringPainted(true);
progressBar.setBounds(115, 114, 183, 14);
contentPane.add(progressBar);
int count = 0;
progressBar.setMaximum(100);


JButton btnProgress = new JButton("Progress");
btnProgress.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

if(count<100) {
count++; //error here
progressBar.setValue(count);

}

}
});
btnProgress.setBounds(160, 166, 89, 23);
contentPane.add(btnProgress);
}
}

我收到的错误消息是“封闭范围中定义的局部变量计数必须是最终的或实际上是最终的”。我无法真正看到范围错误,如果有人可以编辑我的代码以使错误不存在,我将非常感激。

最佳答案

count 变量移到类级别,它应该可以工作。

此外,作为一项改进,我建议使用 lambda 表达式将操作监听器添加到按钮(它更干净):

btnProgress.addActionListener(e -> {
if (count < 100) {
count++;
}
});

关于java - 在封闭范围内定义的局部变量计数必须是最终错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49877945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com