gpt4 book ai didi

java - 面对行动执行的问题

转载 作者:行者123 更新时间:2023-12-01 04:17:18 25 4
gpt4 key购买 nike

第一次触发按钮( Action )时,不会打印“用户名”。当第二次按下该按钮时,该值被打印一次。第三次单击时,该值会打印两次。有人能指出我的错误吗?

*这是我的第一个问题,请提供有关发布更好问题的提示:D

主要方法如下:

public class DMS implements ActionListener{

private static String username;

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
LoginFrame login = new LoginFrame();
login.setVisible(true);
}

public DMS(JTextField textField1) {
DMS.username = textField1.getText();
}

@Override
public void actionPerformed(ActionEvent e) {
System.out.println(username);
}


}

这是位于 jframe 中的 Action 监听器:

private void cmd_loginActionPerformed(java.awt.event.ActionEvent evt) {                                          
ActionListener actionListener = new DMS(JTextField1);
someButton.addActionListener(actionListener);
}

最佳答案

当控件转移到您的操作监听器时,您将尝试打印在初始化期间获得的用户名 - 该用户名是空的。

您需要做的是:

  1. 在 DMS 类中保留 JTextField 的引用
  2. 在 actionPerformed() 上,从组件获取数据。

这将确保您始终获取最新信息。

希望有帮助。

关于java - 面对行动执行的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19316829/

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