有没有办法或者是否可以将actionListener创建为独立类? 我设法使用loginView类创建按钮监听器,它工作得很好,但我正在尝试从另一个类(LoginLogic)实现登录功能。
我遇到的问题,当我试图打印时,它什么也没有返回。
loginView.java
loginLogic lg1 = new loginbtn
final JTextField user;
JButton login = new JButton("test");
user = new JTextField;
..
..
..
panel.add(lg1.loginBtn(user.getText()), cs)
// ---- This will work but i am trying to load the function from loginLogic----
// login.addActionListener(new ActionListener(){
// @Override
// public void actionPerformed(ActionEvent arg0){
// String userText = user.getText();
// System.out.println(username);
// });
}
loginLogic.java
..
public class loginLogic{
public Component loginbtn(String username){
JButton login = new JButton("submit");
login.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0){
System.out.println(username);
});
return login;
}
}
提前谢谢你:)
答案 0 :(得分:2)
像下面这样的匿名内部类只在另一个类中有意义,因为如果唯一使用它的类是JFrame类,那么将actionlistener放到另一个类中是什么意思。我看到的唯一目的是也许干净的代码。
如果要将actionListener实现到单独的类,您可以:
public class ClickListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Clicked!");
}
}
然后到你的JFrame类:
button.addActionListener(new ClickListener());