Je suis en train de construire une simple calculatrice de soustraction seulement modifiée où z = x - y. J'ai créé 3 champs de texte: x, y et z. L'utilisateur saisira la valeur à l'aide du clavier (boutons) que j'ai conçu pour le x et le y. Juste en regardant le code ci-dessous, il y a quelques problèmes immédiatement.Comment saisir des nombres dans JtextFields en utilisant le même jeu de boutons?
1) Le champ de texte x n'accepte qu'un seul chiffre. (Je veux qu'il accepte jusqu'à 3 chiffres). Des suggestions sur la façon dont je peux modifier la déclaration else if pour incorporer cela?
2) Lorsque j'en ai fini avec le champ de texte x, je veux le faire de la même manière avec le champ de texte y. Mais les boutons sont strictement affectés au champ de texte x. Il serait inefficace de faire un clavier de plus juste pour y textfield. Alors, comment puis-je basculer entre le champ de texte x et y. Y at-il un code où si l'utilisateur a le curseur sur le champ de texte x, le clavier est réservé pour ce champ de texte x et si l'utilisateur change pour le champ de texte y, le clavier peut être utilisé pour le y.
3) Et une fois que l'utilisateur a tapé, c'est une opération simple z = x - y. Ce qui devrait être facile à mettre en œuvre. c'est-à-dire, convertissez les chaînes en entiers etc. et effectuez la différence.
Merci d'avance!
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.event.*;
import java.awt.*;
import java.applet.*;
public class EmbeddedMain extends JFrame
{
private JTextField x,y,z;
private JButton button1, button2, button3, button4, button5, button6, button7, button8, button9, button0, buttonR, buttonE;
public static void main (String[] args)
{
EmbeddedMain em = new EmbeddedMain();
}
public EmbeddedMain() //constructor begins, method for embedded main class
{
setTitle("Subtraction");
setSize(450,350);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new GridLayout(4,5,3,3));
setVisible(true);
button1= new JButton("7");
button2= new JButton("8");
button3= new JButton("9");
button4= new JButton("4");
button5= new JButton("5");
button6= new JButton("6");
button7= new JButton("1");
button8= new JButton("2");
button9= new JButton("3");
button0= new JButton("0");
buttonR= new JButton("Reset");
buttonE= new JButton("Enter");
x = new JTextField(" ");
y = new JTextField(" ");
z = new JTextField(" ");
z.setEditable(false);
add(button1);
add(button2);
add(button3);
add(new JLabel(" x:"));
add(x);
add(button4);
add(button5);
add(button6);
add(new JLabel(" y:"));
add(y);
add(button7);
add(button8);
add(button9);
add(new JLabel(" z:"));
add(z);
add(buttonR);
add(button0);
add(buttonE);
thehandler handler = new thehandler();
button1.addActionListener(handler);
button2.addActionListener(handler);
button3.addActionListener(handler);
button4.addActionListener(handler);
button5.addActionListener(handler);
button6.addActionListener(handler);
button7.addActionListener(handler);
button8.addActionListener(handler);
button9.addActionListener(handler);
button0.addActionListener(handler);
buttonR.addActionListener(handler);
buttonE.addActionListener(handler);
}
//building class inside class
private class thehandler implements ActionListener{
public void actionPerformed(ActionEvent event){
if(event.getSource()== button1)
x.setText("7");
else if (event.getSource()== button2)
x.setText("8");
else if (event.getSource()== button3)
x.setText("9");
else if (event.getSource()== button4)
x.setText("4");
else if (event.getSource()== button5)
x.setText("5");
else if (event.getSource()== button6)
x.setText("6");
else if (event.getSource()== button7)
x.setText("1");
else if (event.getSource()== button8)
x.setText("2");
else if (event.getSource()== button9)
x.setText("3");
else if (event.getSource()== button0)
x.setText("0");
else if (event.getSource()== buttonR)
x.setText(" ");
}
}
}
Merci, je vais regarder dans MouseListener plus loin. et revenez vite à vous! – razshan
Je dois basculer entre les deux. Bien, je n'ai aucune idée de la façon dont le MouseListener fonctionne. Je vais aller sur les oracles pour cela. Merci – razshan