JAVA GUI制作一个简易计算器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA GUI制作一个简易计算器相关的知识,希望对你有一定的参考价值。
JAVA GUI入门
用JAVA GUI制作一个简单计数器
简介
功能:实现加减乘除计算功能和复位功能
这里我所设计的简单计算器,计算加减乘除两个运算数类型为int
如果要计算小数,只需改动一下x,y,z的类型变为double以及字符串的转化为Double类型,同时需要添加一个JButton(".")按钮,代表小数点
若要添加删除文本框的一个字符,可设置一个JButton("<-")按钮,防止我们点击按钮点错,该按钮的注册监听窗口需要改写text文本框字符串,删除最后一位的操作,需要用到java的substring函数,可写为:text=text.substring(0,text.length()-1)
,然后调用JTextField的setText()方法
JAVA代码
package javaproject;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class myframe{
public int x=0,y=0,result=0;//两个运算的数以及这两个数进行运算的结果
public JTextField jf1=new JTextField("0",15);
public String text="";//获取文本框字符串
public String operator="";//操作符
JFrame jframe;//容器
Container container;
JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;//数字按钮
JButton j1,j2,j3,j4;//加减乘除按钮
JButton x1,x2,x3;//等于和复位按钮
JPanel jpanel1,jpanel2;//2个面板
public class windowclose extends WindowAdapter
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
}
/*初始化*/
public myframe()
{
jframe=new JFrame("简单计算器");
jframe.setResizable(false);
jframe.setBounds(200, 200, 200, 200);
container=jframe.getContentPane();//添加组件
jpanel1=new JPanel();
jpanel2=new JPanel();
jframe.addWindowListener(new windowclose());
//数字按钮
b0=new JButton("0");b1=new JButton("1");b2=new JButton("2");
b3=new JButton("3");b4=new JButton("4");b5=new JButton("5");
b6=new JButton("6");b7=new JButton("7");b8=new JButton("8");
b9=new JButton("9");
//加减乘除按钮
j1=new JButton("+");j2=new JButton("-");
j1.setForeground(Color.red);j2.setForeground(Color.red);
j3=new JButton("*");j4=new JButton("/");
j3.setForeground(Color.red);j4.setForeground(Color.red);
//等于复位按钮
x1=new JButton("C");x2=new JButton("=");
x2.setForeground(Color.red);
//添加组件
//第一个panel
jpanel1.add(jf1);
jf1.setHorizontalAlignment(jf1.RIGHT);//右对齐
//第二个panel
jpanel2.setLayout(new GridLayout(4,4));
jpanel2.add(b0); jpanel2.add(b1);jpanel2.add(b2); jpanel2.add(j1);
jpanel2.add(b3); jpanel2.add(b4);jpanel2.add(b5); jpanel2.add(j2);
jpanel2.add(b6); jpanel2.add(b7);jpanel2.add(b8); jpanel2.add(j3);
jpanel2.add(b9); jpanel2.add(x1);jpanel2.add(x2); jpanel2.add(j4);
container.add(jpanel1,BorderLayout.NORTH);
container.add(jpanel2,BorderLayout.SOUTH);
jframe.setVisible(true);
/*添加监听窗口*/
//数字按钮监听窗口
numberadapter number=new numberadapter();
b0.addActionListener(number);b1.addActionListener(number);b2.addActionListener(number);
b3.addActionListener(number);b4.addActionListener(number);b5.addActionListener(number);
b6.addActionListener(number);b7.addActionListener(number);b8.addActionListener(number);
b9.addActionListener(number);
//复位监听窗口
C fuwei=new C();
x1.addActionListener(fuwei);
//运算监听窗口
Oper op=new Oper();
j1.addActionListener(op);j2.addActionListener(op);
x2.addActionListener(op);j3.addActionListener(op);
j4.addActionListener(op);
}
/*注册监听器*/
//注册数字监听器
public class numberadapter implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JButton button=(JButton)e.getSource();
if(text.equals("0")&&button.getLabel().equals("0")){
jf1.setText("0");
}
else{
text+=button.getLabel();
jf1.setText(text);
}
}
}
//注册复位键
public class C implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jf1.setText("0");
text="";
operator="";
x=0;y=0;result=0;
}
}
//注册运算按钮监听器
public class Oper implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JButton button=(JButton)e.getSource();
if(button.getLabel()=="+")
{
operator="+";
x=Integer.parseInt(jf1.getText());
jf1.setText("0");
text="";
}
else if(button.getLabel()=="-")
{
operator="-";
x=Integer.parseInt(jf1.getText());
jf1.setText("0");
text="";
}
else if(button.getLabel()=="*")
{
operator="*";
x=Integer.parseInt(jf1.getText());
jf1.setText("0");
text="";
}
else if(button.getLabel()=="/")
{
operator="/";
x=Integer.parseInt(jf1.getText());
jf1.setText("0");
text="";
}
else if(button.getLabel()=="=")
{
if(operator=="+") {
y=Integer.parseInt(jf1.getText());
text="";
result=x+y;
jf1.setText(String.valueOf(result));
}
else if(operator=="-")
{
y=Integer.parseInt(jf1.getText());
text="";
result=x-y;
jf1.setText(String.valueOf(result));
}
else if(operator=="*")
{
y=Integer.parseInt(jf1.getText());
text="";
result=x*y;
jf1.setText(String.valueOf(result));
}
else if(operator=="/")
{
y=Integer.parseInt(jf1.getText());
text="";
if(y==0) {jf1.setText("Math Error");}
else {
result=x/y;
jf1.setText(String.valueOf(result));
}
}
}
}
}
}
/*主main类*/
public static void main(String args[])
{
myframe m=new myframe();
}
实现效果
1.计算10*10
2.计算4000-2100
3.计算5/0
5/0错误,可使用JAVA异常处理机制
以上是关于JAVA GUI制作一个简易计算器的主要内容,如果未能解决你的问题,请参考以下文章