【问题标题】:Action Listener for JButton isn't workingJButton 的动作侦听器不起作用
【发布时间】:2013-07-20 00:49:42
【问题描述】:

我正在尝试自己学习 java,并希望制作一个安全的文本编辑器,您必须登录才能访问该文本。但是,动作监听器对任何按钮都不起作用,我不知道出了什么问题。

请注意,我制作了两个按钮只是因为第一个按钮不起作用。

我的代码如下:

public class storage extends JFrame{
private JTextField text1;
public JTextArea storearea;
public JButton newsave;
public JButton save;

public storage(UserProfile person) { //constructor with name passed in
    super("Safe Storage");
    setLayout(new FlowLayout());

    JTextField text1 = new JTextField("Using program as: " + (person.getName()) );
    text1.setEditable(false);
    add(text1);

    JTextArea storearea = new JTextArea(person.getText());
    add(storearea);

    JButton newsave = new JButton("Save");
    add(newsave);

    JButton save = new JButton("Save Changes");
    add(save);

    thehandler handler = new thehandler();
    save.addActionListener(handler);
    newsave.addActionListener(handler);
} //end constructor


public class thehandler implements ActionListener { //Handler
       public void actionPerformed(ActionEvent event){
           if(event.getSource() == save) {
               System.out.println("Overwriting text");
               }
           else if(event.getSource() == newsave) {
               System.out.println("Overwriting text new");
           }
       }        
    } //end thehandler
} //end class

【问题讨论】:

    标签: java swing jbutton actionlistener shadowing


    【解决方案1】:

    你已经声明了一个实例变量(它为空);

    public JButton newsave;
    

    和一个局部变量:

    JButton newsave = new JButton("Save");
    

    你不想要局部变量(只有实例变量),所以代码应该是:

    newsave = new JButton("Save");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多