Java重复本地变量错误

时间:2014-08-16 17:53:04

标签: java duplicates

我在java中有一个我无法解决的问题,我看了这个错误,但没有什么像我的。我尝试在eclipse中使用快速修复,但它只给了我更多的错误。 错误在第53行 这是代码:

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

public class AA extends JFrame {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private JLabel label;
    private JButton Button;
    private JTextField TextField;

    public AA() {
        setLayout(new FlowLayout());

        label = new JLabel("Backup         ");
        add(label);

        label = new JLabel("Save name");
        add(label);

        TextField = new JTextField(15);
        add(TextField);

        Button = new JButton("Backup");
        add(Button);

        label = new JLabel("Restore         ");
        add(label);

        label = new JLabel("Backup name");
        add(label);

        TextField = new JTextField(15);
        add(TextField);

        Button = new JButton("Restore");
        add(Button);

        event e = new event();
        Button.addActionListener(e);
    }

    public static void main (String args[]) {
        AA gui = new AA();

        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        gui.setVisible(true);
        gui.setSize(1360, 600);
        gui.setTitle("Save Backup 2");
        event gui = new event();

    }

    public class event implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            label.setText("Done");
        }
    }

}

2 个答案:

答案 0 :(得分:0)

您有两个名为gui的变量。重命名其中一个

public static void main (String args[]) {
    AA gui = new AA(); // <-- one

    gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    gui.setVisible(true);
    gui.setSize(1360, 600);
    gui.setTitle("Save Backup 2");
    event gui = new event(); // <-- two

}

更改

event gui = new event();

AA.event guiEvent = gui.new event()

这会将内部event实例与AAgui)的封闭实例相关联。

答案 1 :(得分:0)

AA gui = new AA();

这声明了一个名为gui的变量。

event gui = new event();

在相同的范围(相同的方法)中,您声明另一个名为gui的变量。重命名这两个。

作为旁注,只需重命名其中一个就不会结束你的问题。应该像这样创建第二个变量(我们称之为gui2):

event gui2 = gui.new event();

这是因为event是一个非静态嵌套类,它需要对包含类的引用。