windows计算器简单UI设计(java)
2013-11-28 13:40
405 查看
先看一下windows的计算器UI:
我的UI:
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);
}
}
我的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);
}
}
相关文章推荐
- - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCap
- UIWindow 介绍1:概述、作用、主要属性及方法
- easyui combobox 多选怎么获值?
- Arduino教程(入门篇)——各版本驱动安装方法
- 常见arduino版本比较
- 初识arduino
- 新型Arduino云为物联网应用创建开源设计环境
- UIDatePicker的使用
- Code Sign error: No matching provisioning profile found: Your build settings specify a provisioni...
- miniGUI概念
- PHP点评系统 Modoer v2.9 MC Build 20120524
- UIPickView的使用
- 从uibutton的点击谈谈ios的响应事件
- A potentially dangerous Request.Form value was detected from the client
- The test form is only available for requests from the local machine 解决方法
- select, iocp, epoll,kqueue及各种I/O复用机制
- IOS UILabel 增加点击事件。
- easyui 禁用linkbutton 事件依然触发
- UEditor常用设置函数记录
- ios UITapGestureRecognizer 单指单击、单指多击、多指单击、多指多击事件操作