我在向JTextField添加actionlistener时遇到了麻烦。我需要将用户输入的文本转换为字符串,以便我可以使用它。
任何人都可以告诉我我做错了什么或我应该怎么做。
以下是代码:
public void actionPerformed(ActionEvent e)
{
//Execute when button is pressed
JFrame frame = new JFrame("Value Bet");
frame.setVisible(true);
frame.setSize(500,300);
GridBagLayout layout = new GridBagLayout();
frame.setLayout(layout);
GridBagConstraints c = new GridBagConstraints();
JLabel label;
JTextField tf;
if (shouldFill) {
//natural height, maximum width
c.fill = GridBagConstraints.HORIZONTAL;
}
if (shouldWeightX) {
c.weightx = 0.5;
}
...
tf = new JTextField();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 2;
frame.add(tf, c);
tf.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
String chance1 = tf.getText();
}
});
...
答案 0 :(得分:1)
为什么使用ActionListener
代替KeyListener
?
您应该使用KeyListener或:
tf.getDocument().addDocumentListener(documentListener);
答案 1 :(得分:1)
public void actionPerformed(ActionEvent e)
{
// Look Ma, a one-liner!
String chance1 = JOptionPane.showInputDialog(someComponent, "Value Bet");
}
进一步研究重载方法以调整外观,为健壮性添加null
检查,并考虑使用微调器而不是文本字段(BNI)。