Comment puis-je obtenir la saisie de l'utilisateur à partir d'un component swing jtextfield?

Je cherche un très simple formulaire conçu pour prendre saisie de l'utilisateur dans un component swing jtextfield et de montrer que même la saisie via un pop-up boîte de dialogue.

Je peux coder en dur le component swing jtextfield avoir un numéro de préréglage à l'aide de setText(). Si je fais cela, mon programme fonctionne parfaitement.

Cependant, lorsque je laisse le champ vide et essayer getText() pour afficher le texte dans la fenêtre de dialogue, j'ai un vide cadre de pop up, ou je reçois une "chaîne vide" exception (j'essaie d'analyser les Cordes à Double.)

package buttontest;

import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import javax.swing.*;
import java.awt.event.ActionEvent;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class ButtonTest
{
public static void main(String[] args)
{
ButtonFrame frame = new ButtonFrame();
frame
.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame
.setVisible(true);
}
}
class ButtonFrame extends JFrame
{
@SuppressWarnings("LeakingThisInConstructor")
public ButtonFrame()
{

setTitle("SunStream Loan Calculator v2.0");
setSize
(900,900);
ButtonPanel panel = new ButtonPanel();
panel
.add(new JLabel("Enter your loan amount:"));
loanAmt
= new JTextField(40);
panel
.add(loanAmt);

add(panel,BorderLayout.CENTER);
}

public JTextField loanAmt;

class ButtonPanel extends JPanel implements ActionListener
{
private Component frame;
public ButtonPanel()
{

final JButton b2 = new JButton("Calculate");
add
(b2, BorderLayout.SOUTH);
b2
.setActionCommand("calculate");
b2
.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
ButtonFrame bf = new ButtonFrame();
if("calculate".equals(e.getActionCommand()))
{
JOptionPane.showMessageDialog(frame, bf.loanAmt.getText());
}
}

});

}

@Override
public void actionPerformed(ActionEvent ae) {
throw new UnsupportedOperationException("Not supported yet.");
}

}
}

Toute aide serait grandement appréciée. Je fais des recherches à l'aide d'un KeyListener ou KeyEvent mais je ne comprends pas très bien assez bien.

OriginalL'auteur Phoenix | 2011-10-23