帮我用Java语言写一个样式美观的计算器app
时间: 2023-08-31 13:23:27 浏览: 72
### 回答1:
好的,我可以回答你的问题。以下是一个基本的Java语言编写的计算器app示例,它可以实现加减乘除四则运算,并拥有一个美观的界面。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
//组件
private JButton numButton[];
private JButton operatorButton[];
private JButton pointButton, clearButton, equalButton, deleteButton;
private JTextField displayField;
//操作数和操作符
private String num1 = "";
private String num2 = "";
private String operator = "";
//构造函数
public Calculator() {
//设置标题
setTitle("Calculator");
//初始化组件
numButton = new JButton[10];
for (int i = 0; i < 10; i++) {
numButton[i] = new JButton("" + i);
}
operatorButton = new JButton[4];
operatorButton[0] = new JButton("+");
operatorButton[1] = new JButton("-");
operatorButton[2] = new JButton("*");
operatorButton[3] = new JButton("/");
pointButton = new JButton(".");
clearButton = new JButton("Clear");
equalButton = new JButton("=");
deleteButton = new JButton("Del");
displayField = new JTextField(20);
//设置布局
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4, 4));
for (int i = 1; i < 10; i++) {
buttonPanel.add(numButton[i]);
if (i % 3 == 0) {
buttonPanel.add(operatorButton[i / 3 - 1]);
}
}
buttonPanel.add(numButton[0]);
buttonPanel.add(pointButton);
buttonPanel.add(clearButton);
buttonPanel.add(deleteButton);
//添加组件
Container container = getContentPane();
container.setLayout(new BorderLayout());
container.add(displayField, BorderLayout.NORTH);
container.add(buttonPanel, BorderLayout.CENTER);
container.add(equalButton, BorderLayout.SOUTH);
//添加监听器
for (int i = 0; i < 10; i++) {
numButton[i].addActionListener(this);
}
for (int i = 0; i < 4; i++) {
operatorButton[i].addActionListener(this);
}
pointButton.addActionListener(this);
clearButton.addActionListener(this);
equalButton.addActionListener(this);
deleteButton.addActionListener(this);
//设置窗口大小
setSize(250, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
//按钮监听器
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("Clear")) {
num1 = "";
num2 = "";
operator = "";
displayField.setText("");
} else if (command.equals("Del")) {
String text = displayField.getText();
if (text.length() > 0) {
text = text.substring(0, text.length() - 1);
displayField.setText(text);
}
} else if (command.equals("+") || command.equals("-") || command.equals("*") || command.equals("/")) {
operator = command;
num1 = displayField.getText();
displayField.setText("");
} else if (command.equals(".")) {
String text = displayField.getText();
if (!text.contains(".")) {
displayField.setText(text + ".");
}
### 回答2:
当然可以帮您用Java语言写一个样式美观的计算器应用程序。
首先,我们需要使用Java Swing库来创建图形用户界面(GUI)。可以创建一个主窗口,添加菜单栏和工具栏,还可以选择适宜的颜色和字体来美化界面。通过使用布局管理器(如GridLayout或GridBagLayout),我们可以将按钮和显示屏组织成合适的布局。
接下来,我们可以创建一个计算器类,该类将处理用户的输入和计算逻辑。我们可以为每个按钮创建一个监听器,以便在用户点击按钮时执行相应的操作。例如,点击数字按钮时,我们可以将相应的数字显示在屏幕上;点击运算符按钮时,我们可以将运算符保存起来,等待继续输入数字;点击等于按钮时,我们可以根据保存的数字和运算符进行相应的计算,并将结果显示在屏幕上。
为了增加用户体验,我们还可以添加其他功能,如删除按钮和清除按钮。当用户点击删除按钮时,我们可以删除屏幕上最后一个输入的字符;当用户点击清除按钮时,我们可以清除屏幕上的所有内容。
最后,我们可以为界面和功能添加一些动画效果和过渡效果,以使应用程序看起来更加生动和流畅。
综上所述,用Java语言编写一个样式美观的计算器应用程序是完全可行的。通过合适的GUI设计,结合Java的强大功能,我们可以创建一个界面优美、操作方便的计算器应用程序。希望我的回答对您有所帮助!
### 回答3:
当然可以!以下是一个简单的示例代码,可以帮助你实现一个样式美观的计算器app:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CalculatorApp extends JFrame {
private JTextField resultField;
public CalculatorApp() {
setTitle("计算器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setSize(300, 400);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new BorderLayout());
resultField = new JTextField();
resultField.setHorizontalAlignment(JTextField.RIGHT);
resultField.setFont(new Font("Arial", Font.PLAIN, 20));
JPanel buttonPanel = new JPanel(new GridLayout(4, 4, 10, 10));
String[] buttonLabels = new String[]{
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+"
};
for (String label : buttonLabels) {
JButton button = new JButton(label);
button.addActionListener(new ButtonClickListener());
button.setFont(new Font("Arial", Font.BOLD, 20));
buttonPanel.add(button);
}
mainPanel.add(resultField, BorderLayout.NORTH);
mainPanel.add(buttonPanel, BorderLayout.CENTER);
add(mainPanel);
setVisible(true);
}
private class ButtonClickListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
String buttonText = ((JButton) event.getSource()).getText();
if (buttonText.equals("=")) {
calculate();
} else {
resultField.setText(resultField.getText() + buttonText);
}
}
private void calculate() {
try {
String result = eval(resultField.getText());
resultField.setText(result);
} catch (Exception e) {
resultField.setText("错误");
}
}
private String eval(String expression) {
return String.valueOf(new Expression(expression).calculate());
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(CalculatorApp::new);
}
}
```
你可以使用此代码片段作为起点,根据自己的需求进行修改和扩展。希望能对你有所帮助!