我收到的错误是“无法引用在其他方法中定义的内部类中的非最终变量”
当我尝试设置我的计时器引用我构建的动作侦听器时,会发生这种情况!这个构造函数只显示一个标签,定时器所需的效果是运行动作监听器10秒,但我无法通过此错误。下面的代码显示了他的动作监听器以及他发出的问题。我把星星放在了有问题的地方。感谢
**ActionListener actListner = new ActionListener() {
public void actionPerformed(ActionEvent event) {
lblgreenImage.setBounds(150,410,50,40);
repaint();
}
};**
btnEnter.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
String username = txtUserName.getText();
String accessCode = txtPin.getText();
String dataSourceName = "securitysystem";
String dbUrl = "jdbc:odbc:" + dataSourceName;
try{
//Type of connection driver used
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Connection variable or object param: dbPath, userName, password
Connection con = DriverManager.getConnection(dbUrl, "", "");
Statement statement = con.createStatement();
ResultSet rs = statement.executeQuery("select username, pin from securitysystem.employee where username = '" + username + "' and pin = '" + accessCode + "'");
boolean nomatches=true;
while(rs.next())
{
String checkrs = rs.getString("username");
String checkPin = rs.getString("Pin");
if (username.equals(checkrs)) {
if (accessCode.equals(checkPin)) {
**Timer timer = new Timer(500, actListner);**
**timer.start();**
答案 0 :(得分:0)
似乎您尝试访问lblgreenImage
中的本地变量AbstractClass
。为了解决问题,您可以:
1)为final
添加lblgreenImage
修饰符,当你创建它时,就像下一个:
final JLabel lblgreenImage = new JLabel("labeel");
2)将lblgreenImage
作为实例变量。
在java中阅读有关variables的更多信息。