Comment obtenir les valeurs des boutons à l'aide de getSource() dans AWT (devoir de calculatrice)
Dans ce devoir, vous êtes chargé de créer un calculatrice d'interface utilisateur graphique (GUI) simple. La calculatrice doit permettre à l'utilisateur de saisir deux nombres et de choisir une opération (addition, soustraction, multiplication ou division), puis d'afficher le résultat.
Le défi :
Au départ, vous avez essayé d'utiliser la méthode getSource() pour détecter sur quel bouton vous avez cliqué, mais cette approche n'a fonctionné que pour les boutons d'opération. Cependant, votre instructeur exige désormais que les chiffres soient également des boutons, tout comme dans une vraie calculatrice. Le problème est que vous ne pouvez pas déterminer la valeur de chaque bouton numérique en utilisant uniquement la méthode getSource().
Solution :
Pour surmonter ce défi et obtenir la valeur de chaque bouton numérique :
Code Exemple :
Voici un exemple de la façon dont vous pouvez mettre en œuvre cette solution :
import java.awt.*; import java.awt.event.*; public class NumberButtonCalculator implements ActionListener { // Create the GUI components private Button[] numberButtons = new Button[10]; // Number buttons private Button[] operationButtons = new Button[4]; // Operation buttons (+, -, *, /) private Label display; // Display for result public NumberButtonCalculator() { // Initialize the GUI ... // Code to create the GUI components // Add action listeners to the number buttons for (Button button : numberButtons) { button.addActionListener(this); } // Add action listeners to the operation buttons for (Button button : operationButtons) { button.addActionListener(this); } } // Handle button clicks @Override public void actionPerformed(ActionEvent e) { // Get the source of the event Object source = e.getSource(); // Handle number button clicks for (int i = 0; i < numberButtons.length; i++) { if (source == numberButtons[i]) { // Get the value of the number button int value = Integer.parseInt(numberButtons[i].getLabel()); // Process the value... } } // Handle operation button clicks for (int i = 0; i < operationButtons.length; i++) { if (source == operationButtons[i]) { // Get the operation type String operation = operationButtons[i].getLabel(); // Process the operation... } } } // ... // Other code }
Avec cette approche, vous pouvez récupérer les valeurs des touches numériques en vérifiant le getSource( ) puis en utilisant la méthode getActionCommand() pour obtenir la commande d'action associée, qui représente la valeur du bouton.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!