来源:智尚软件下载/时间:2025-02-15 14:36/作者:
在当今信息化时代,计算器作为一种基本的工具,广泛应用于学习和工作中。特别是在编程学习中,设计并实现一个简易计算器不仅可以帮助我们巩固编程基础知识,还能提升解决实际问题的能力。本文将使用Java语言来设计一个简易计算器窗口,旨在为初学者提供一个实用的参考。
首先,我们需要了解Java Swing。这是Java提供的一套用于构建图形用户界面(GUI)的工具包。Swing包含了一系列可以让开发者轻松构建具有良好用户体验的界面组件。接下来,我们将通过几个步骤来实现我们的简易计算器。
首先,我们需要导入Swing相关的类,并定义我们的计算器类,如下所示:
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class SimpleCalculator { private JFrame frame; private JTextField textField; private String operator; private double num1, num2; public SimpleCalculator() { createUI(); } }在上面的代码中,我们创建了一个JFrame窗口和一个JTextField文本框。接下来,我们需要设计计算器的布局,包括数字按钮和运算符按钮。
为计算器添加数字和运算符按钮需要使用JButton组件。我们可以使用GridLayout来方便地布局这些按钮,代码示例如下:
private void createUI() { frame = new JFrame(简易计算器); textField = new JTextField(); textField.setEditable(false); frame.setLayout(new BorderLayout()); frame.add(textField, BorderLayout.NORTH); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(4, 4)); String[] buttonLabels = { 7, 8, 9, /, 4, 5, 6, *, 1, 2, 3, -, 0, C, =, + }; for (String label : buttonLabels) { JButton button = new JButton(label); button.addActionListener(new ButtonClickListener()); panel.add(button); } frame.add(panel, BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); frame.setVisible(true); }在创建按钮的同时,我们为每个按钮添加了事件监听器,以便在按钮被点击时能够执行相应的操作。
接下来,我们需要定义ButtonClickListener类,用于实现按钮被点击时的逻辑。这里我们处理数字输入、运算符选择、清空操作和计算结果:
private class ButtonClickListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (C.equals(command)) { textField.setText(); } else if (=.equals(command)) { num2 = Double.parseDouble(textField.getText()); double result = calculate(num1, num2, operator); textField.setText(String.valueOf(result)); } else if (+.equals(command) || -.equals(command) || *.equals(command) || /.equals(command)) { num1 = Double.parseDouble(textField.getText()); operator = command; textField.setText(); } else { textField.setText(textField.getText() + command); } } }在这个监听器中,我们首先判断如果点击的是“C”按钮,则清空文本框内容;若点击的是“=”按钮,则调用计算方法并展示结果;若点击的是运算符按钮,记录操作数和选定的运算符;最后,如果是数字按钮,则将其添加到文本框中。
最后,我们需要实现一个计算方法,根据用户选择的运算符来返回计算结果:
private double calculate(double num1, double num2, String operator) { switch (operator) { case +: return num1 + num2; case -: return num1 - num2; case *: return num1 * num2; case /: return num1 / num2; default: return 0; } }在计算方法中,我们使用了switch语句,根据不同的运算符实施对应的数学运算,最终返回结果。
结合以上所述,完整的简易计算器代码如下:
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class SimpleCalculator { private JFrame frame; private JTextField textField; private String operator; private double num1, num2; public SimpleCalculator() { createUI(); } private void createUI() { frame = new JFrame(简易计算器); textField = new JTextField(); textField.setEditable(false); frame.setLayout(new BorderLayout()); frame.add(textField, BorderLayout.NORTH); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(4, 4)); String[] buttonLabels = { 7, 8, 9, /, 4, 5, 6, *, 1, 2, 3, -, 0, C, =, + }; for (String label : buttonLabels) { JButton button = new JButton(label); button.addActionListener(new ButtonClickListener()); panel.add(button); } frame.add(panel, BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); frame.setVisible(true); } private class ButtonClickListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (C.equals(command)) { textField.setText(); } else if (=.equals(command)) { num2 = Double.parseDouble(textField.getText()); double result = calculate(num1, num2, operator); textField.setText(String.valueOf(result)); } else if (+.equals(command) || -.equals(command) || *.equals(command) || /.equals(command)) { num1 = Double.parseDouble(textField.getText()); operator = command; textField.setText(); } else { textField.setText(textField.getText() + command); } } } private double calculate(double num1, double num2, String operator) { switch (operator) { case +: return num1 + num2; case -: return num1 - num2; case *: return num1 * num2; case /: return num1 / num2; default: return 0; } } public static void main(String[] args) { new SimpleCalculator(); } }以上代码实现了一个简单的计算器窗口,用户可以通过点击按钮来进行基本的四则运算。在实际应用中,开发者可以根据需求对该计算器进行扩展,例如支持更多的数学运算、增加历史记录功能等。
通过这次的实践,相信读者对Java Swing有了更深入的理解,同时也为日后的编程学习打下了良好的基础。希望这篇文章能够对大家有所帮助,激励更多初学者投身于Java编程的学习与探索中。
相关文章