Java 按Jbutton获取TextField值
问题是: 我想要一个交互式GUI,它有一个Java 按Jbutton获取TextField值,java,jframe,jbutton,actionlistener,Java,Jframe,Jbutton,Actionlistener,问题是: 我想要一个交互式GUI,它有一个TextField和一个JButton。用户在TextField中输入他们的pincode,按JButton,该值从主类获取,用作函数中的参数 这是我的JFrame,带有文本字段和按钮代码: public class JTextFieldDemo extends JFrame { //Class Declarations JTextField jtfText1, jtfUneditableText; String dis
TextField
和一个JButton
。用户在TextField
中输入他们的pincode
,按JButton
,该值从主类获取,用作函数中的参数
这是我的JFrame,带有文本字段和按钮代码:
public class JTextFieldDemo extends JFrame {
//Class Declarations
JTextField jtfText1, jtfUneditableText;
String disp = "";
ButtonHandler handler = null;
String pin;
//Constructor
public JTextFieldDemo() {
super("Smart Token Utility");
Container container = getContentPane();
container.setLayout(new FlowLayout());
jtfText1 = new JTextField(10);
jtfUneditableText = new JTextField("Please Enter Your PIN Code", 20);
jtfUneditableText.setEditable(false);
container.add(jtfText1);
container.add(jtfUneditableText);
handler = new ButtonHandler();
JButton button = new JButton("Enter");
button.setSize(3,5);
button.addActionListener(handler);
container.add(button);
setSize(325, 100);
setLocationRelativeTo(null);
setVisible(true);
jtfText1.addActionListener(handler);
}
//Inner Class ButtonHandler
private class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
pin = jtfText1.getText();
}
}
这是我的主要课程代码:
public static void main(String args[]) {
JTextFieldDemo test = new JTextFieldDemo();
String pincode = test.pin;
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
KeyStore.load(null, pincode);
}
我有两个问题:
1) 当我运行main类时,会出现Jframe
,在TextField
中键入任何内容之前,它就会消失
2) 主类中的
pincode
始终为null
,即使我在ButtonHandler
类中对其进行了硬编码。当您的主方法在创建JFrame后获得pin码时,它将具有默认值null。因此,获取pin码(KeyStore.load(null,pincode))方法应该在ButtonHandler#actionPerformed()中
但是在你的例子中,你可以使用
JOptionPane#showInputDialog(java.lang.Object,java.lang.Object)
来获取输入。好吧,这并不是这个问题的确切答案,但在我的例子中解决了这个问题。谢谢你的帮助。