用java写一个简易的计算器界面

Java实现简易计算器界面
本文介绍了如何使用Java Swing库创建一个简易的计算器界面。作者从创建类开始,逐步引入必要的包,如JFrame、JButton和JTextField,设置布局管理器FlowLayout,以及添加按键和输入框,并设置了按键背景颜色。虽然目前的计算器界面没有实际功能,但作者计划在后续文章中实现按钮点击事件监听器,以实现输入和计算功能。

如何用java写一个简易的计算器界面

前言(与本节重点无关可以忽视)

最近了解了一些界面窗口知识,在老师一步步的悉心教导下我却又一次地走向了迷茫——陌生,理解不充分,照搬。咳咳,但是经过几天的拆解,琢磨,实践,我也渐渐粗浅地认识到了一些本质问题。当时教写的是登录界面,所以这次我打算写一个计算器界面来检测一下自己是不是依然一头雾水。

基本准备

首先给类取名CaculatorInterface(计算器界面)

package kallen1014;

public class CalculatorInterface {

}

第二步,想好需要引入的包,框架JFrame,按键JButton,输入框JTextFiled,其尺寸Dimension,然后是排版FlowLayout,还有按键的颜色(实际上不要也罢,但在这里还是体现一下这个功能吧)

package kallen1014;

import java.awt.FlowLayout;
import java.awt.Dimension;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
public class CalculatorInterface {

}

调用主函数创建对象,并令其实现方法

public static void main(String[]args) {
	CalculatorInterface ci=new CalculatorInterface();
	ci.init();

	}

在方法“init”中编些界面的主要内容

创建框架,包括其格式,标题,显示位置等等

public void init() {
		JFrame jf=new JFrame();
		jf.setTitle("计算器");
		jf.setSize(500, 400);
		jf.setResizable(true);//因为不知道需要多大这里的大小设置为可调式
		jf.setLocation(null);//程序弹出的位置设置在屏幕中间
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//不设置这个程序将无法关闭

设置布局规则

这一步很重要,决定了一下设置元素的排版,我们这里使用流式布局器让所有元素按照顺序排列,或许你会觉得下面的顺序就要严格按照顺序来了,其实不然,在最后会有一个添加元素的程序操作,那才是决定排版因素的程序

//设置布局规则
		FlowLayout fl=new FlowLayout();
		jf.setLayout(fl);

设置文本框(即输入框)

//设置输入框
		JTextField inputbox=new JTextField();
		//设置框架大小
		Dimension dim=new Dimension(400,50);//这个大小设置也是暂定的
		//这里设置的大小还未应用到输入框里,所以还要引入,用setPreferredSize来表示
		inputbox.setPreferredSize(dim);
	注意,每一个框架内的元素最后都要用程序添加到框架中,否则将只存在一个框架,这一步将在最后进行。

设置按键

由于计算器按键很多所以要在设置前先列出来
在这里插入图片描述
在这里暂且借用一下系统计算器的排版,由于是简易版,我也只会取部分来编写

//设置按钮
		JButton buttn1=new JButton(" % ");
		JButton buttn2=new JButton(" CE");
		JButton buttn3=new JButton(" C ");
		JButton buttn4=new JButton(" ← ");
		JButton buttn5=new JButton(" 7 ");
		JButton buttn6=new JButton(" 8 ");
		JButton buttn7=new JButton(" 9 ");
		JButton buttn8=new JButton(" ÷ ");
		JButton buttn9=new JButton(" 4 ");
		JButton buttn10=new JButton(" 5 ");
		JButton buttn11=new JButton(" 6 ");
		JButton buttn12=new JButton(" × ");
		JButton buttn13=new JButton(" 1 ");
		JButton buttn14=new JButton(" 2 ");
		JButton buttn15=new JButton(" 3 ");
		JButton buttn16=new JButton(" - ");
		JButton buttn17=new JButton("帮助");
		JButton buttn18=new JButton(" 0 ");
		JButton buttn19=new JButton(" ½ ");
		JButton buttn20=new JButton(" = ");

给按键设置一个颜色

Color color=new Color(255,255,255);//表示白色
		Color color2=new Color(177,183,214);//淡蓝色
		buttn1.setBackground(color);
		buttn2.setBackground(color);
		buttn3.setBackground(color);
		...

由于有20 个按键这里就不一一例举了

将元素添加到框架中

在这一步当中计算器的界面就基本实现了,剩下的只需要将元素加到框架中即可,注意,这里的添加顺序决定了按键及框架的排版。

这里我们先试试整体效果,在这之后再添加监听器功能。

//将元素加到框架中
		jf.add(inputbox);
		jf.add(buttn1);
		jf.add(buttn2);
		jf.add(buttn3);
		jf.add(buttn4);
		jf.add(buttn5);
		······

设置元素可显示

jf.setVisible(true);//关键操作,没有则不能显示。	

让我们看看初步成果 在这里插入图片描述
显然大小调试不当,那么我们来调一调大小
在这里插入图片描述
通过测试是257和294,然后我们再调整之前设定的大小,给定数值,固定大小即可

小结

做出来的这个计算器只是个界面,实际功能是无法使用的,下一次的文章中我将实现监听器功能,即点击按钮即可打入输入框,以及点击帮助后弹出第二个界面。那么这次的介绍就到这里,下次再见。

可以使用 Java 的 `AWT`(Abstract Window Toolkit)和 `Swing` 来创建一个不依赖外部库的简易计算器界面。`AWT` 是 Java 最早的用于创建图形用户界面(GUI)的工具包,而 `Swing` 是基于 `AWT` 构建的,提供了更丰富的组件和更好的外观。 以下是一个简单的 Java 计算器界面示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; // 计算器类,继承 JFrame 以创建窗口 public class SimpleCalculator extends JFrame { // 用于显示输入和结果的文本框 private JTextField textField; // 用于存储第一个操作数 private double firstNumber = 0; // 用于存储当前操作符 private String operator = ""; // 构造函数,初始化计算器界面 public SimpleCalculator() { // 设置窗口标题 setTitle("简易计算器"); // 设置窗口关闭时的操作 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口布局为边界布局 setLayout(new BorderLayout()); // 创建文本框 textField = new JTextField(); // 设置文本框对齐方式为右对齐 textField.setHorizontalAlignment(JTextField.RIGHT); // 将文本框添加到窗口的北部 add(textField, BorderLayout.NORTH); // 创建面板用于放置按钮 JPanel buttonPanel = new JPanel(); // 设置面板布局为 4 行 4 列的网格布局 buttonPanel.setLayout(new GridLayout(4, 4)); // 定义按钮标签数组 String[] buttonLabels = { "7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+" }; // 遍历按钮标签数组,创建并添加按钮到面板 for (String label : buttonLabels) { JButton button = new JButton(label); // 为按钮添加点击事件监听器 button.addActionListener(new ButtonClickListener()); buttonPanel.add(button); } // 将按钮面板添加到窗口的中心 add(buttonPanel, BorderLayout.CENTER); // 自动调整窗口大小以适应组件 pack(); // 设置窗口可见 setVisible(true); } // 按钮点击事件监听器类 private class ButtonClickListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // 获取点击按钮的文本 String command = e.getActionCommand(); if ("0123456789.".contains(command)) { // 如果点击的是数字或小数点,将其追加到文本框中 textField.setText(textField.getText() + command); } else if ("+-*/".contains(command)) { // 如果点击的是操作符 firstNumber = Double.parseDouble(textField.getText()); operator = command; textField.setText(""); } else if ("=".equals(command)) { // 如果点击的是等号,进行计算 double secondNumber = Double.parseDouble(textField.getText()); double result = 0; switch (operator) { case "+": result = firstNumber + secondNumber; break; case "-": result = firstNumber - secondNumber; break; case "*": result = firstNumber * secondNumber; break; case "/": if (secondNumber != 0) { result = firstNumber / secondNumber; } else { textField.setText("Error"); return; } break; } // 将计算结果显示在文本框中 textField.setText(String.valueOf(result)); } } } public static void main(String[] args) { // 在事件调度线程中创建并显示计算器界面 SwingUtilities.invokeLater(SimpleCalculator::new); } } ``` ### 代码解释 1. **类和继承**:`SimpleCalculator` 类继承自 `JFrame`,用于创建一个窗口。 2. **组件初始化**: - `JTextField` 用于显示用户输入和计算结果。 - `JPanel` 用于放置按钮,使用 `GridLayout` 布局管理器将按钮排列成 4x4 的网格。 3. **按钮事件处理**:`ButtonClickListener` 类实现了 `ActionListener` 接口,用于处理按钮点击事件。根据点击的按钮文本执行不同的操作,如输入数字、选择操作符和计算结果。 4. **计算逻辑**:在点击等号时,根据当前操作符对两个操作数进行计算,并将结果显示在文本框中。 5. **异常处理**:在除法运算中,检查除数是否为零,如果为零则显示错误信息。 ### 运行代码 将上述代码保存为 `SimpleCalculator.java` 文件,然后在命令行中使用以下命令编译和运行: ```sh javac SimpleCalculator.java java SimpleCalculator ``` 运行后,会弹出一个简易计算器界面,你可以进行基本的加减乘除运算
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值