Java 如何从ActionListener获取整数?
我是java新手,有以下问题: 我在一个按钮上添加了一个ActionListener,我想从中访问一个数字,但它没有像我那样工作。我仔细寻找,但找不到答案。 代码如下所示:Java 如何从ActionListener获取整数?,java,eclipse,actionlistener,Java,Eclipse,Actionlistener,我是java新手,有以下问题: 我在一个按钮上添加了一个ActionListener,我想从中访问一个数字,但它没有像我那样工作。我仔细寻找,但找不到答案。 代码如下所示: public class example extends JPanel{ int text; public example(){ JButton button = new JButton("x"); JTextField textField = new JTextFiel
public class example extends JPanel{
int text;
public example(){
JButton button = new JButton("x");
JTextField textField = new JTextField();
add(textField);
add(button);
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
text = Integer.parseInt(textField.getText());
}
}
button.addActionListener(al);
system.out.println(text);
}
}
您必须在操作侦听器顶部将文本变量声明为final
public class example extends JPanel{
final String text;
public example(){
JButton button = new JButton("x");
JTextField textField = new JTextField();
add(textField);
add(button);
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
text = textField.getText();
}
}
button.addActionListener(al);
system.out.println(text);
}
}问题在于你的逻辑。您已将ActionListener添加到按钮。因此,每当按下按钮时,text的值就是textField的值。但文本的初始值为空。 在您的代码中,添加ActionListener后,将打印文本的值。您可能希望更改ActionListener,如下所示:
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
text = textField.getText();
someFun();
system.out.println(text);
}
}
要从字符串中获取整数,请使用integer.parseInt()函数:
void someFun() {
int num = Integer.parseInt(text);
... // Do whatever you want to do
}
问题在于逻辑。是的,它是有效的,但如何在ActionListener之外获取整数?请检查编辑。我认为您应该了解一下Java的基础知识,因为它不起作用。Eclipse希望删除“final”。。。附近有路吗?