您的位置:首页 > 产品设计 > UI/UE

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

2013-11-28 13:40 405 查看
先看一下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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: