计算器java程序文字摘要_计算器(Java)

第一个Java程序。。

import java.awt.Button;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.TextField;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

import javax.swing.JFrame;

import javax.swing.JTextField;

import java.awt.BorderLayout;

import javax.swing.JMenuBar;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class Main

{

JFrame frame = new JFrame("计算器");

JMenuBar b = new JMenuBar(); //菜单

JMenu bb = new JMenu("菜单");

JMenuItem bb1 = new JMenuItem("清除");

JMenuItem bb2 = new JMenuItem("重新开始");

JTextField text = new JTextField(); //显示屏

JPanel p = new JPanel(); //面板,装前三行

JPanel p0 = new JPanel(); //装p和p2

JPanel p2 = new JPanel(); //装最后一行按钮

double result=0;

char ch;

int flag=0,n=0;

public void go()

{

b.setPreferredSize(new Dimension(285,20));

bb.add(bb1);

bb.add(bb2);

b.add(bb);

text.setText("0");

text.setHorizontalAlignment(JTextField.RIGHT); //从右显示

p0.setLayout(new BorderLayout());

p0.add(p,BorderLayout.NORTH);

p0.add(p2,BorderLayout.CENTER);

p.setLayout(new GridLayout(3,3,0,0));

p2.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));

Button b0 = new Button("0"); //按钮

b0.setPreferredSize(new Dimension(77,40));

Button b1 = new Button("1");

b1.setPreferredSize(new Dimension(68, 40));

Button b2 = new Button("2");

b2.setPreferredSize(new Dimension(68, 40));

Button b3 = new Button("3");

b3.setPreferredSize(new Dimension(68, 40));

Button b4 = new Button("4");

b4.setPreferredSize(new Dimension(68, 40));

Button b5 = new Button("5");

b5.setPreferredSize(new Dimension(68, 40));

Button b6 = new Button("6");

b6.setPreferredSize(new Dimension(68, 40));

Button b7 = new Button("7");

b7.setPreferredSize(new Dimension(68, 40));

Button b8 = new Button("8");

b8.setPreferredSize(new Dimension(68, 40));

Button b9 = new Button("9");

b9.setPreferredSize(new Dimension(68, 40));

Button b10 = new Button("=");

b10.setPreferredSize(new Dimension(154, 40));

Button b11 = new Button("+");

b11.setPreferredSize(new Dimension(68,40));

Button b12 = new Button("-");

b12.setPreferredSize(new Dimension(68, 40));

Button b13 = new Button("*");

b13.setPreferredSize(new Dimension(68, 40));

Button b14 = new Button("/");

b14.setPreferredSize(new Dimension(77,40));

p.add(b1);

p.add(b2);

p.add(b3);

p.add(b11);

p.add(b4);

p.add(b5);

p.add(b6);

p.add(b12);

p.add(b7);

p.add(b8);

p.add(b9);

p.add(b13);

p2.add(b0);

p2.add(b10);

p2.add(b14);

frame.add(b,BorderLayout.NORTH);

frame.add(text,BorderLayout.CENTER);

frame.add(p0,BorderLayout.SOUTH);

frame.setPreferredSize(new Dimension(315,300));

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setResizable(false); //不能放大

frame.pack();

frame.setVisible(true);

b0.addActionListener(new ActionA());

b1.addActionListener(new ActionA());

b2.addActionListener(new ActionA());

b3.addActionListener(new ActionA());

b4.addActionListener(new ActionA());

b5.addActionListener(new ActionA());

b6.addActionListener(new ActionA());

b7.addActionListener(new ActionA());

b8.addActionListener(new ActionA());

b9.addActionListener(new ActionA());

b10.addActionListener(new ActionD());

b11.addActionListener(new ActionF());

b12.addActionListener(new ActionF());

b13.addActionListener(new ActionF());

b14.addActionListener(new ActionF());

bb1.addActionListener(new Clear());

bb2.addActionListener(new Begin());

}

public static void main(String[] args)

{

Main m = new Main();

m.go();

}

/**

*

* 按钮事件

*

*/

class ActionA implements ActionListener

{

@Override

public void actionPerformed(ActionEvent e)

{

n=0;

String s1 = e.getActionCommand(); //取按钮上的值

double l1 = Double.valueOf(s1);

String s2 = text.getText(); //取显示屏上的值

double l2=0;

if(s2.equals("除数不能为0"))

{

text.setText("0"); l2=0;

}

else

{

l2 = Double.valueOf(s2);

}

if(flag==1)

{

text.setText("0");l2=0;flag=0;

}

double l3 = l2*10+l1;

String s = Double.toString(l3);

text.setText(s);

}

}

/**

*

* 三个符号事件+-/

*

*/

class ActionF implements ActionListener

{

@Override

public void actionPerformed(ActionEvent e)

{

String s1 = text.getText(); //取显示屏上的值

double l1 = Double.valueOf(s1);

result = l1;

//System.out.println(result);

text.setText("0");

String s2 = e.getActionCommand(); //取按钮上的值

char [] c = s2.toCharArray(); //取符号

ch = c[0];

}

}

/**

*

* "/"事件

*

*/

class ActionD implements ActionListener

{

@Override

public void actionPerformed(ActionEvent e)

{

if(n==1)

return ;

String s1 = text.getText(); //取显示屏上的值

double l1 = Double.valueOf(s1);

if(s1.equals("0.0"))

{

text.setText("除数不能为0");

result = 0;

flag = 0;

return ;

}

switch(ch)

{

case '+':

result = result + l1;break;

case '-':

result = result - l1;break;

case '*':

result = result * l1;break;

case '/':

result = result / l1;break;

}

String s = Double.toString(result);

text.setText(s);

result = 0;

flag=1;

n=1; //防止按多次“=”

}

}

/**

*

*重新开始

*

*/

class Begin implements ActionListener

{

@Override

public void actionPerformed(ActionEvent e)

{

result = 0;

flag = 0;

text.setText("0");

}

}

/**

*

*清除最后一位

*

*/

class Clear implements ActionListener

{

@Override

public void actionPerformed(ActionEvent e)

{

String s ="0";

String s1 = text.getText(); //取显示屏上的值

char [] c = s1.toCharArray();

for(int i=0;i

{

if(i==0)

{

s = Character.toString(c[i]);continue;

}

s = s + c[i];

}

text.setText(s);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值