gpt4 book ai didi

java - 从 ActionListener 访问变量并将其传输到新方法

转载 作者:行者123 更新时间:2023-12-02 08:49:41 26 4
gpt4 key购买 nike

我已经研究过一些 Java 了,但有时方法和变量的格式化仍然会让我感到困惑,这取决于具体情况。我觉得这可能是一个简单的修复,但由于某种原因我坚持了下来。我有一个 ActionListener 附加到 JDialog 中的按钮。激活此 ActionListener 方法时,它会创建一个字符串 dateAndTime ,以及与 Timer 中的 TimerTask 类相关的几个组件 包(我正在考虑删除它们来代替 ScheduledExecutorService ,但没关系)。我知道我可以在任何方法之外的类中声明一个全局变量,并且我可以创建传递给方法的参数,这些方法的值在这些方法内本地更新,但我想知道:如何获取这些值字符串,其指针在按下按钮时被赋予值,并在其他 future 的方法中使用它们?

ActionListener 的代码如下。

getMessageAndTime.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String mm = month.getSelectedItem().toString();
String dd = day.getSelectedItem().toString();
String yy = year.getSelectedItem().toString();
String hr = hour.getSelectedItem().toString();
String min = minute.getSelectedItem().toString();
String mornOrNight = am_pm.getSelectedItem().toString();

String dateAndTime = mm +"-" + dd +"-" + yy + " " + hr +":" + min + " " + mornOrNight;
dateFormatter = new SimpleDateFormat("MM-dd-yyyy hh:mm aa");

try {
date = dateFormatter.parse(dateAndTime);
} catch (ParseException ex) {
ex.printStackTrace();
}

timer = new Timer();
String contents = message.getText();
if (contents.equals("")) {
JOptionPane.showMessageDialog(d2, "Announcement field is blank. Please try again.",
"ERROR", JOptionPane.ERROR_MESSAGE);
}
}
});

最佳答案

只需在此方法的范围之外声明变量即可。

private String mm = "";
private String dd = "";

public void methodX()
{
getMessageAndTime.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mm = month.getSelectedItem().toString();
dd = day.getSelectedItem().toString();
....
....
....
}
});
}

public void methodY(){
//Now you can access 'mm' and 'dd' here
System.out.println(mm);
}

关于java - 从 ActionListener 访问变量并将其传输到新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60861607/

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