java j界面 计算器界面_Java界面计算器的实现

实现一个计算器,运行界面如下:

56177a1bf49e

运行界面

在eclipse中运行通过

主要运用了Java的图形界面显示,流式布局方式,使用监听器,实现简单的加减乘除计算,结果显示在result文本框中

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class Calculator extends JFrame {

public Calculator(){

setLayout(new FlowLayout(FlowLayout.LEFT,10,20)); //建立流式布局

add(new JLabel("Number 1"));

JTextField tf1 = new JTextField(3); //文本框JTextFiled

add(tf1);

add(new JLabel("Number 2"));

JTextField tf2 = new JTextField(3); //文本框JTextFiled

add(tf2);

add(new JLabel("result"));

JTextField tf3 = new JTextField(5); //文本框JTextFiled

add(tf3);

JBu

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Java 计算器界面实现: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator implements ActionListener { JFrame frame; JTextField textField; JButton[] numberButtons = new JButton[10]; JButton[] functionButtons = new JButton[9]; JButton addButton, subButton, mulButton, divButton; JButton decButton, equButton, delButton, clrButton; JPanel panel; Font myFont = new Font("Ink Free", Font.BOLD, 30); double num1 = 0, num2 = 0, result = 0; char operator; Calculator() { frame = new JFrame("Calculator"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(420, 550); frame.setLayout(null); textField = new JTextField(); textField.setBounds(50, 25, 300, 50); textField.setFont(myFont); 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(myFont); functionButtons[i].setFocusable(false); } for (int i = 0; i < 10; i++) { numberButtons[i] = new JButton(String.valueOf(i)); numberButtons[i].addActionListener(this); numberButtons[i].setFont(myFont); numberButtons[i].setFocusable(false); } delButton.setBounds(50, 430, 145, 50); clrButton.setBounds(205, 430, 145, 50); panel = new JPanel(); panel.setLayout(new GridLayout(4, 4, 10, 10)); panel.setBounds(50, 100, 300, 300); 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) { Calculator calculator = new Calculator(); } @Override public void actionPerformed(ActionEvent e) { for (int i = 0; i < 10; i++) { if (e.getSource() == numberButtons[i]) { textField.setText(textField.getText().concat(String.valueOf(i))); } } if (e.getSource() == decButton) { textField.setText(textField.getText().concat(".")); } 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; } textField.setText(String.valueOf(result)); num1 = result; } if (e.getSource() == clrButton) { textField.setText(""); } if (e.getSource() == delButton) { String string = textField.getText(); textField.setText(""); for (int i = 0; i < string.length() - 1; i++) { textField.setText(textField.getText() + string.charAt(i)); } } } } ``` 这个计算器界面使用了 `JFrame`、`JTextField`、`JButton` 和 `JPanel` 等 Swing 组件。其中,`JTextField` 用来显示计算结果和用户输入的数字和符号,`JButton` 用来表示数字、小数点、运算符和其他功能键。 在 `Calculator` 类中,我们实现了 `ActionListener` 接口,重写了 `actionPerformed()` 方法,该方法会在用户点击按钮时触发相应的操作。例如,当用户点击数字按钮时,我们将相应的数字追加到文本框中。当用户点击运算符按钮时,我们将当前文本框中的数字保存到 `num1` 中,并将该运算符保存到 `operator` 中,然后清空文本框,等待用户输入下一个数字。当用户点击等于号时,我们将当前文本框中的数字保存到 `num2` 中,根据 `operator` 执行相应的运算,并将结果显示在文本框中。 此外,我们还为不同的按钮设置了不同的字体和样式,使界面更加美观。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值