import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Cal extends JFrame{
private JTextField m_jtData;
private String strName[]={"1","2","3","+",
"4","5","6","-",
"7","8","9","*",
".","0","=","/"
};
private JButton[] m_jbOperate;
public Cal(){
this.setBounds(300, 100, 300, 350);
this.setTitle("計算器");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
CreatePane();
this.setVisible(true);
}
private void CreatePane(){
//輸入資料的文本框
m_jtData=https://bbs.csdn.net/topics/new JTextField();
m_jtData.setBackground(Color.yellow);
m_jtData.setEditable(false);
m_jtData.setHorizontalAlignment(JTextField.RIGHT);
m_jtData.setText("0");
//操作按鈕
//JPanel opPane = new JPanel();
//opPane.setLayout(new GridLayout(4,4,10,10));
JPanel opPane = new JPanel(new GridLayout(4,4,30,20)); //中間容器
m_jbOperate=new JButton[16];
MyEvent my=new MyEvent(); //操作按鈕的動作監聽物件
for(int i=0;i<m_jbOperate.length;i++){
JButton x = new JButton(strName[i]);
x.addActionListener(my);
opPane.add(x);
m_jbOperate[i]=x;
}
//拼裝
Container ca = this.getContentPane();
ca.setLayout(new BorderLayout(10,10));
ca.add(m_jtData,BorderLayout.NORTH);
ca.add(opPane,BorderLayout.CENTER);
ca.add(new JLabel(" "),BorderLayout.EAST);
ca.add(new JLabel(" "),BorderLayout.WEST);
ca.add(new JLabel(" "),BorderLayout.SOUTH);
}
class MyEvent implements ActionListener{
long data1,data2;
int opType;
void setData(long num){
long a,b;
String txt;
txt=m_jtData.getText();
a=Long.parseLong(txt);
b=a*10+num;
m_jtData.setText(""+b);
}
@Override
public void actionPerformed(ActionEvent e) {
JButton jb=(JButton)e.getSource();
long a,b;
String txt;
if(jb==m_jbOperate[0]){//1
setData(1);
}else if(jb==m_jbOperate[1]){//2
setData(2);
}else if(jb==m_jbOperate[2]){//3
setData(3);
}else if(jb==m_jbOperate[3]){//+
this.opType=1;
this.data1=Long.parseLong(m_jtData.getText());
m_jtData.setText("0");
}else if(jb==m_jbOperate[4]){//4
setData(4);
}else if(jb==m_jbOperate[5]){//5
setData(5);
}else if(jb==m_jbOperate[6]){//6
setData(6);
}else if(jb==m_jbOperate[7]){//-
this.opType=2;
this.data1=Long.parseLong(m_jtData.getText());
m_jtData.setText("0");
}else if(jb==m_jbOperate[8]){//7
setData(7);
}else if(jb==m_jbOperate[9]){//8
setData(8);
}else if(jb==m_jbOperate[10]){//9
setData(9);
}else if(jb==m_jbOperate[11]){//*
this.opType=3;
this.data1=Long.parseLong(m_jtData.getText());
m_jtData.setText("0");
}else if(jb==m_jbOperate[12]){//.
}else if(jb==m_jbOperate[13]){//0
setData(0);
}else if(jb==m_jbOperate[14]){//=
this.data2=Long.parseLong(m_jtData.getText());
switch(this.opType){
case 1:
m_jtData.setText(this.data1+this.data2+"");
break;
case 2:
m_jtData.setText(this.data1-this.data2+"");
break;
case 3:
m_jtData.setText(this.data1*this.data2+"");
break;
case 4:
if(this.data2==0){
m_jtData.setText("ERROR");
}else{
m_jtData.setText(this.data1/this.data2+"");
}
break;
}
}else if(jb==m_jbOperate[15]){// /除法
this.opType=4;
this.data1=Long.parseLong(m_jtData.getText());
m_jtData.setText("0");
}else{
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/284502.html
標籤:Java SE
上一篇:linux tomcat
