使用java编写计算器,有图形化界面
时间: 2024-05-28 20:09:45 浏览: 16
好的,我可以为您提供一些关于使用Java编写计算器并且有图形化界面的方案。
首先,您可以使用Java Swing库来创建一个GUI界面,并且使用Java语言编写计算器的逻辑。这需要您具备Java基础知识以及一定的GUI编程经验。
此外,您还可以使用一些现有的开源计算器项目,例如JCalc等,这些项目已经包含了GUI界面以及计算器逻辑,您可以基于此进行修改或者适配您的需求。
希望能够帮到您。
相关问题
使用java语言编写一个具有图形化界面的科学计算器
好的,我可以为您提供一个使用Java语言编写的具有图形化界面的科学计算器示例。这里使用的是Java Swing库实现界面设计。代码如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ScientificCalculator extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextField textField;
private double num1, num2, result;
private int operation;
public ScientificCalculator() {
setTitle("科学计算器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(300, 400);
setResizable(false);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(5, 4, 5, 5));
textField = new JTextField();
textField.setEditable(false);
textField.setHorizontalAlignment(SwingConstants.RIGHT);
panel.add(textField);
JButton button1 = new JButton("1");
button1.addActionListener(this);
panel.add(button1);
JButton button2 = new JButton("2");
button2.addActionListener(this);
panel.add(button2);
JButton button3 = new JButton("3");
button3.addActionListener(this);
panel.add(button3);
JButton buttonAdd = new JButton("+");
buttonAdd.addActionListener(this);
panel.add(buttonAdd);
JButton button4 = new JButton("4");
button4.addActionListener(this);
panel.add(button4);
JButton button5 = new JButton("5");
button5.addActionListener(this);
panel.add(button5);
JButton button6 = new JButton("6");
button6.addActionListener(this);
panel.add(button6);
JButton buttonSub = new JButton("-");
buttonSub.addActionListener(this);
panel.add(buttonSub);
JButton button7 = new JButton("7");
button7.addActionListener(this);
panel.add(button7);
JButton button8 = new JButton("8");
button8.addActionListener(this);
panel.add(button8);
JButton button9 = new JButton("9");
button9.addActionListener(this);
panel.add(button9);
JButton buttonMult = new JButton("*");
buttonMult.addActionListener(this);
panel.add(buttonMult);
JButton button0 = new JButton("0");
button0.addActionListener(this);
panel.add(button0);
JButton buttonDot = new JButton(".");
buttonDot.addActionListener(this);
panel.add(buttonDot);
JButton buttonEquals = new JButton("=");
buttonEquals.addActionListener(this);
panel.add(buttonEquals);
JButton buttonDiv = new JButton("/");
buttonDiv.addActionListener(this);
panel.add(buttonDiv);
JButton buttonPow = new JButton("^");
buttonPow.addActionListener(this);
panel.add(buttonPow);
JButton buttonSqrt = new JButton("√");
buttonSqrt.addActionListener(this);
panel.add(buttonSqrt);
JButton buttonClear = new JButton("C");
buttonClear.addActionListener(this);
panel.add(buttonClear);
add(panel, BorderLayout.CENTER);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String buttonText = e.getActionCommand();
if (buttonText.equals("C")) {
textField.setText("");
num1 = 0;
num2 = 0;
result = 0;
operation = 0;
} else if (buttonText.equals("+")) {
num1 = Double.parseDouble(textField.getText());
operation = 1;
textField.setText("");
} else if (buttonText.equals("-")) {
num1 = Double.parseDouble(textField.getText());
operation = 2;
textField.setText("");
} else if (buttonText.equals("*")) {
num1 = Double.parseDouble(textField.getText());
operation = 3;
textField.setText("");
} else if (buttonText.equals("/")) {
num1 = Double.parseDouble(textField.getText());
operation = 4;
textField.setText("");
} else if (buttonText.equals("^")) {
num1 = Double.parseDouble(textField.getText());
operation = 5;
textField.setText("");
} else if (buttonText.equals("√")) {
num1 = Double.parseDouble(textField.getText());
result = Math.sqrt(num1);
textField.setText(String.valueOf(result));
} else if (buttonText.equals("=")) {
num2 = Double.parseDouble(textField.getText());
switch (operation) {
case 1:
result = num1 + num2;
break;
case 2:
result = num1 - num2;
break;
case 3:
result = num1 * num2;
break;
case 4:
result = num1 / num2;
break;
case 5:
result = Math.pow(num1, num2);
break;
}
textField.setText(String.valueOf(result));
} else {
textField.setText(textField.getText() + buttonText);
}
}
public static void main(String[] args) {
new ScientificCalculator();
}
}
```
这个示例使用了JFrame、JPanel、JTextField和JButton等Swing组件,实现了基本的数学运算、幂运算和开方等功能。你可以根据自己的需要添加更多的功能和组件。
Java图形用户界面设计,编写计算器代码
下面是一个简单的Java图形用户界面计算器代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CalculatorGUI implements ActionListener {
JFrame frame;
JTextField textField;
JButton[] numberButtons = new JButton[10];
JButton[] functionButtons = new JButton[8];
JButton addButton, subButton, mulButton, divButton;
JButton decButton, equButton, delButton, clrButton;
JPanel panel;
double num1 = 0, num2 = 0, result = 0;
char operator;
CalculatorGUI() {
frame = new JFrame("Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(325, 450);
frame.setLayout(null);
textField = new JTextField();
textField.setBounds(50, 25, 200, 50);
textField.setFont(new Font("Arial", Font.PLAIN, 25));
textField.setEditable(false);
addButton = new JButton("+");
subButton = new JButton("-");
mulButton = new JButton("*");
divButton = new JButton("/");
decButton = new JButton(".");
equButton = new JButton("=");
delButton = new JButton("Delete");
clrButton = new JButton("Clear");
functionButtons[0] = addButton;
functionButtons[1] = subButton;
functionButtons[2] = mulButton;
functionButtons[3] = divButton;
functionButtons[4] = decButton;
functionButtons[5] = equButton;
functionButtons[6] = delButton;
functionButtons[7] = clrButton;
for (int i = 0; i < 8; i++) {
functionButtons[i].addActionListener(this);
functionButtons[i].setFont(new Font("Arial", Font.PLAIN, 18));
}
for (int i = 0; i < 10; i++) {
numberButtons[i] = new JButton(String.valueOf(i));
numberButtons[i].addActionListener(this);
numberButtons[i].setFont(new Font("Arial", Font.PLAIN, 18));
}
delButton.setBounds(50, 300, 150, 50);
clrButton.setBounds(200, 300, 150, 50);
panel = new JPanel();
panel.setBounds(50, 100, 300, 200);
panel.setLayout(new GridLayout(4, 4, 10, 10));
panel.add(numberButtons[1]);
panel.add(numberButtons[2]);
panel.add(numberButtons[3]);
panel.add(addButton);
panel.add(numberButtons[4]);
panel.add(numberButtons[5]);
panel.add(numberButtons[6]);
panel.add(subButton);
panel.add(numberButtons[7]);
panel.add(numberButtons[8]);
panel.add(numberButtons[9]);
panel.add(mulButton);
panel.add(decButton);
panel.add(numberButtons[0]);
panel.add(equButton);
panel.add(divButton);
frame.add(panel);
frame.add(delButton);
frame.add(clrButton);
frame.add(textField);
frame.setVisible(true);
}
public static void main(String[] args) {
CalculatorGUI calculator = new CalculatorGUI();
}
@Override
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < 10; i++) {
if (e.getSource() == numberButtons[i]) {
textField.setText(textField.getText() + String.valueOf(i));
}
}
if (e.getSource() == decButton) {
textField.setText(textField.getText() + ".");
}
if (e.getSource() == addButton) {
num1 = Double.parseDouble(textField.getText());
operator = '+';
textField.setText("");
}
if (e.getSource() == subButton) {
num1 = Double.parseDouble(textField.getText());
operator = '-';
textField.setText("");
}
if (e.getSource() == mulButton) {
num1 = Double.parseDouble(textField.getText());
operator = '*';
textField.setText("");
}
if (e.getSource() == divButton) {
num1 = Double.parseDouble(textField.getText());
operator = '/';
textField.setText("");
}
if (e.getSource() == equButton) {
num2 = Double.parseDouble(textField.getText());
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
result = 0;
}
textField.setText(String.valueOf(result));
num1 = result;
}
if (e.getSource() == clrButton) {
textField.setText("");
}
if (e.getSource() == delButton) {
String str = textField.getText();
textField.setText("");
for (int i = 0; i < str.length() - 1; i++) {
textField.setText(textField.getText() + str.charAt(i));
}
}
}
}
```
该代码创建了一个基本的计算器,使用Java的Swing库创建图形用户界面。它包含数字按钮、运算符按钮和功能按钮,例如“删除”和“清除”。当用户单击数字按钮时,数字将显示在文本框中。当用户单击运算符按钮时,第一个数字将保存,并清空文本框以等待下一个数字。当用户单击等于按钮时,程序将计算两个数字之间的运算结果,并将结果显示在文本框中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)