Comment obtenir un texte à partir d'un component swing jtextfield et l'utiliser comme un int
J'ai tout cela dans un seul fichier. Je suis en train d'essayer d'obtenir l'int du champ de texte jtfNumber1 et jtfNumber2 et ensuite afficher le résultat de l'action de la fonction du bouton est enfoncé dans jtfResult. J'ai les boutons de travail. Actuellement, ils affichent un message de test. Je suis coincé à l'obtention de la chaîne à partir de la zone de texte.
public class Calculator extends JFrame {
//Create Buttons and fields
private JButton jbtAdd = new JButton("Add");
private JButton jbtSub = new JButton("Subtract");
private JButton jbtMul = new JButton("Multiply");
private JButton jbtDiv = new JButton("Divide");
private JTextField jtfNumber1 = new JTextField(8);
private JTextField jtfNumber2 = new JTextField(8);
private JTextField jtfResponse = new JTextField(8);
public Calculator() {
//Create Panel
JPanel panel = new JPanel();
panel.add(new JLabel("Number 1"));
panel.add(jtfNumber1);
panel.add(new JLabel("Number 2"));
panel.add(jtfNumber2);
panel.add(new JLabel("Result"));
panel.add(jtfResponse);
panel.add(jbtAdd);
panel.add(jbtSub);
panel.add(jbtMul);
panel.add(jbtDiv);
add(panel);
BtnListener listener = new BtnListener();
jbtAdd.addActionListener(listener);
jbtSub.addActionListener(listener);
jbtMul.addActionListener(listener);
jbtDiv.addActionListener(listener);
}
class JtfListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int x = Intenger.parseInt(jtfNumber1.getText());
}
}
class BtnListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jbtAdd) {
System.out.println("Test Test Test");
} else if (e.getSource() == jbtSub) {
System.out.println("Test Test Test");
} else if (e.getSource() == jbtMul) {
System.out.println("Test Test Test");
} else if (e.getSource() == jbtDiv) {
System.out.println("Test Test Test");
}
}
}
public static void main(String[] args) {
JFrame frame = new Calculator();
frame.setTitle("Calculator");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
- qu'entendez-vous par "coincé à l'obtention de la chaîne à partir de la zone de texte" expliquer ?
- Et si vous vant la valeur d'un champ de texte, alors vous pouvez essayer d'Entier.valueOf(nameOfTextField)
- Jetez un oeil à cette thread, il va ajouter quelque chose de plus à votre connaissance, au sujet de l'aide de DocumentFilter
Vous devez vous connecter pour publier un commentaire.
Vous avez presque terminé, quelques changements dans
actionPerformed
méthodeVous pouvez directement mettre en œuvre
ActionListner
à votre classeet écraser
actionPerformed
méthode. Aussi votre méthode principale devrait être commeVoir Pourquoi SwingUtilities invokelater est nécessaire
Vous pouvez simplement utiliser
si vous souhaitez utiliser le champ de texte de la valeur d'un nombre entier.
Cela pourrait peut-être vous aider: Comment faire pour Récupérer la valeur de component swing jtextfield en Java Swing?
Dans votre actionlistener vous avez besoin pour obtenir le texte et de le convertir en un nombre Entier
exemple.
Vice-versa pour les entrées restantes.