java界面编程加法运算器_java图形界面编程及计算器

import java.awt.*;

import java.awt.event.*;

import java.util.Date;

import javax.swing.*;

public class 个人信息{

public static void main(String arg[])

{

Frame f=new Frame("个人信息");

f.setSize(250,300);

f.setLocation(300,300);

f.setBackground(Color.lightGray);

f.setLayout(new FlowLayout(2));

f.add(new JLabel("姓名:"));

f.add(new TextField("冶勇",20));

f.add(new JLabel("班级:"));

f.add(new TextField("计算机科学与技术16(D)",20));

f.add(new JLabel("学号:"));

f.add(new TextField("20163311106",20));

f.add(new JLabel("性别:"));

f.add(new TextField("男",20));

JButton button1=new JButton("OK");

JButton button2=new JButton("CLOSE");

f.add(button1);

f.add(button2);

button1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) { //OK按钮事件

JOptionPane.showMessageDialog(null,"你是谁,我是谁?","提示",JOptionPane.PLAIN_MESSAGE) ;

}

});

button2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) { //CLOSE按钮事件

long d=e.getWhen(); //事件发生的时间

Date date=new Date(d); //转换为相应的时间

System.out.println(date);

System.exit(0);

}

});

f.setVisible(true);

}

}

计算器:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.Stack; //Stack是一个后进先出的堆栈

public class 计算器 extends JFrame implements ActionListener {

String []An= {"7","8","9","+","4","5","6","-",

"1","2","3","*","0",".","=","/"};

JButton b[]=new JButton[16];

JTextField jt;

String input=""; //输入的字符串

public 计算器() {

Container P=getContentPane(); //用getContentPane()方法获得JFrame的内容面板

JPanel jp1=new JPanel();

JPanel jp2=new JPanel();

JPanel jp3=new JPanel();

JButton b1=new JButton("清零");

JButton b2=new JButton("退格");

GridLayout g=new GridLayout(4,4,3,3); //4*4网格,间距3

jp1.setLayout(new BorderLayout()); //边布局

jp2.setLayout(g);

jp3.setLayout(new GridLayout(1, 2,3,3));

jt=new JTextField();

jt.setPreferredSize(new Dimension(160,30)); //文本大小

jt.setHorizontalAlignment(SwingConstants.LEFT); //左对齐

P.add(jp1,BorderLayout.NORTH); //北

jp1.add(jt,BorderLayout.WEST); //西

jp1.add(jp3,BorderLayout.EAST); //东

jp3.add(b1);

jp3.add(b2);

b1.setBackground(Color.lightGray);

b2.setBackground(Color.lightGray);

b1.addActionListener(this); //定义处理事件的方法

b2.addActionListener(this);

for(int i=0;i<16;i++) //添加按钮

{

b[i]=new JButton(An[i]);

jp2.add(b[i]);

b[i].addActionListener(this);

}

P.add(jp2,BorderLayout.CENTER);

setVisible(true);

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

setSize(300, 250);

setTitle("计算器");

}

@Override

public void actionPerformed(ActionEvent e) {

int t=0;

String s=e.getActionCommand();

if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")) {

input+=" "+s+" "; //如果碰到运算符,就在运算符前后分别加一个空格

}else if(s.equals("清零")) {

input="";

}else if(s.equals("退格")) {

if((input.charAt(input.length()-1))==' ') //检测字符串的最后一个字符是否为空格

{

input=input.substring(0,input.length()-3); //如果是则删除末尾3个字符

}

else //否则删除1个字符

{

input=input.substring(0,input.length()-1);

}

}

else if(s.equals("=")) {

input=compute(input);

jt.setText(input);

input="";

t=1;

}

else

input += s;

if(t==0) {

jt.setText(input);

}

}

private String compute(String str) {

String array[];

array=str.split(" ");

Stack s=new Stack();

Double a=Double.parseDouble(array[0]);

s.push(a);

for(int i=1;i

if(i%2==1) {

if(array[i].compareTo("+")==0)

{

double b= Double.parseDouble(array[i+1]);

s.push(b);

}

if(array[i].compareTo("-")==0)

{

double b= Double.parseDouble(array[i+1]);

s.push(-b);

}

if(array[i].compareTo("*")==0)

{

double b= Double.parseDouble(array[i+1]);

double c=s.pop();

c*=b;

s.push(c);

}

if(array[i].compareTo("/")==0)

{

double b= Double.parseDouble(array[i+1]);

double c=s.peek();

s.pop();

c/=b;

s.push(c);

}

}

}

double sum=0;

while(!s.isEmpty()) {

sum+=s.pop();

}

String result=String.valueOf(sum);

return result;

}

public static void main(String[] args) {

new 计算器();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值