【发布时间】:2017-10-03 12:41:37
【问题描述】:
我在使用ActionListener 和JButton 存储值时遇到问题。我对 Java 还很陌生,对类和子类的编程方式不是 100% 有信心。
import java.ActionEvent;
import javaActionListener;
import javax.swing JButton;
import javax.swing JPanel;
import javax.swing.JTextField;
public class Trial extends JPanel implements Action Listener {
private static final long serialVersionUID = 1L;
public Trial() {
setFrame();
}
public void setFrame(){
JFrame frame = new JFrame("Trial");
JPanel panel = new JPanel();
JTextField field = new JTextField(10);
JButton button = new JButton("Enter");
button.addActionListener(this);
panel.add(field);
panel.add(button);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args) {
new Trial();
}
@Override
public void actionPerformed(ActionEvent e) {
String s = field.getText();
System.out.prinln("Button is pressed");
}
}
actionPerformed 中的字段未定义,为什么会这样?我玩过ActionEvent,似乎我无法传入actionPerformed 函数之外的任何变量。那么我该怎么做呢?我需要将setFrame() 移动到它自己的班级吗?
【问题讨论】:
-
为什么
Trial扩展JPanel?它似乎完全没有必要这样做。 -
代码只是原始代码的sn-p。我只是为这个问题准备了必要的代码行。
标签: java jtextfield actionevent