How to Get Button Values Using getSource() in AWT (Calculator Homework)
In this homework assignment, you are tasked with creating a simple graphical user interface (GUI) calculator. The calculator should allow the user to enter two numbers and choose an operation (addition, subtraction, multiplication, or division) and then display the result.
The Challenge:
Initially, you tried to use the getSource() method to detect which button was clicked, but this approach only worked for the operation buttons. However, now your instructor requires that the numbers should also be buttons, just like in a real calculator. The issue is that you cannot determine the value of each number button using the getSource() method alone.
Solution:
To overcome this challenge and get the value of each number button:
Code Example:
Here is an example of how you can implement this 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 }
With this approach, you can retrieve the values of the number buttons by checking the getSource() and then using the getActionCommand() method to get the associated action command, which represents the value of the button.
The above is the detailed content of How to Retrieve Number Button Values in an AWT Calculator Using `getActionCommand()`?. For more information, please follow other related articles on the PHP Chinese website!