windows计算器简单UI设计(java)

先看一下windows的计算器UI:

 

我的UI:


package First;

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.*;


public class Calculator extends JFrame  {
	
	JTextField aTextField = new JTextField(30);
	JButton buttonBackspace = new JButton("Backspace");
	JButton buttonCE = new JButton(" CE ");
	JButton buttonClear = new JButton("Clear");
	JButton buttonONE[]= {new JButton("MC"),new JButton("7"),new JButton("8"),
			              new JButton("9"),new JButton("/"),new JButton("sqrt")};
	JButton buttonTWO[]= {new JButton("MR"),new JButton("4"),new JButton("5"),
                          new JButton("6"),new JButton("*"),new JButton("%")};
	JButton buttonTHREE[]= {new JButton("MS"),new JButton("1"),new JButton("2"),
                          new JButton("3"),new JButton("-"),new JButton("1/x")};
	JButton buttonFOUR[]= {new JButton("M+"),new JButton("0"),new JButton("+/-"),
                          new JButton("."),new JButton("+"),new JButton("=")};
	public Calculator() {
		// JFrame fr = new JFrame();
		setLayout(new BorderLayout());

		JPanel panel1 = new JPanel();
		JPanel panel2 = new JPanel();
		JPanel panel3 = new JPanel();
        //从右向左显示文本
		aTextField.setHorizontalAlignment(JTextField.RIGHT);
		panel1.add(aTextField);
		add(panel1, "North");
        	
		panel3.add(buttonBackspace);
		panel3.add(buttonCE);
		panel3.add(buttonClear);
		add(panel3, "East");

		panel2.setLayout(new GridLayout(0, 6));
		for(int i=0;i<6;i++)
			panel2.add(buttonONE[i]);
		for(int i=0;i<6;i++)
			panel2.add(buttonTWO[i]);
		for(int i=0;i<6;i++)
			panel2.add(buttonTHREE[i]);
		for(int i=0;i<6;i++)
			panel2.add(buttonFOUR[i]);

		add(panel2, "South");
	}
	
	public static void main(String[] args) {
		Calculator cal = new Calculator();
		cal.setTitle("计算器");
		cal.pack();
		cal.setResizable(false);//设置不再改变大小
		cal.setDefaultCloseOperation(EXIT_ON_CLOSE);
		cal.setVisible(true);
	}
}






package Cal;


import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.*;




public class Calculator extends JFrame  implements  ActionListener{

JTextField text = new JTextField(30);
JButton []buttonBar = {new JButton("Backspace"),new JButton(" CE "),new JButton("Clear")};
JButton[] button = {new JButton("MC"),new JButton("7"),new JButton("8"),
            new JButton("9"),new JButton("/"),new JButton("sqrt"),
            new JButton("MR"),new JButton("4"),new JButton("5"),
                          new JButton("6"),new JButton("*"),new JButton("%"),
            new JButton("MS"),new JButton("1"),new JButton("2"),
                          new JButton("3"),new JButton("-"),new JButton("1/x"),
            new JButton("M+"),new JButton("0"),new JButton("+/-"),
                          new JButton("."),new JButton("+"),new JButton("=")};
char operator;
double a,b;
public Calculator() {
setLayout(new BorderLayout());


JPanel panel0 = new JPanel();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();

        //从右向左显示文本
text.setHorizontalAlignment(JTextField.RIGHT);
panel0.add(text);
add(panel0, "North");
       
for(int i=0;i<3;i++)
panel1.add(buttonBar[i]);
add(panel1, "East");
       //主面板
panel2.setLayout(new GridLayout(0, 6));
for(int i=0;i<6*4;i++)
panel2.add(button[i]);

add(panel2, "South");
for(int i=0;i<3;i++)
buttonBar[i].addActionListener(this);
for(int i=0;i<24;i++)
button[i].addActionListener(this);
}
public double compute(double a,double b)
{
if(operator=='+')return a+b;
if(operator=='*')return a*b;
if(operator=='-')return a-b;
  return a/b;
}
public void actionPerformed(ActionEvent e){
String num=e.getActionCommand();
char c=num.charAt(0);

if(c=='+'||c=='-'||c=='*'||c=='/')
{
operator=c;
text.setText(text.getText()+num);
}
else if(c>='0'&&c<='9')
{
text.setText(text.getText()+num);
}

else if(c=='=')
{
String sp=String.valueOf(operator);
if(sp.equals("+")||sp.equals("*"))
{
sp="["+sp+"]";
}
String []str= text.getText().split(sp);
a=Double.parseDouble(str[0]);
b=Double.parseDouble(str[1]);
double ans=compute(a,b);
String abs=String.valueOf(ans);
text.setText(abs);
}
else if(c=='C')
text.setText("");
}

public static void main(String[] args) {
Calculator cal = new Calculator();
cal.setTitle("计算器");
cal.pack();
cal.setResizable(false);//设置不再改变大小
cal.setDefaultCloseOperation(EXIT_ON_CLOSE);
cal.setVisible(true);
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值