?? jisuanqi.java
字號:
/*
* Created on 2005-12-30
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author webb
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class jisuanqi extends JFrame implements ActionListener,KeyListener{
JTextField Text = new JTextField("");
NKey nkey = new NKey();
boolean flag = false;
boolean finput = true;
boolean k=true;
JLabel zz=new JLabel("03級軟件(2)班 陳偉 3103003333 \n" +
"開始調試時間:2005-1-4\n " +
"結束調試時間:2005-1-5\n");
String text = "";
double front=0;
int symbol = 0;
jisuanqi() {
super("計算器");
Text.enable(false);
Text.setHorizontalAlignment(SwingConstants.RIGHT);
JPanel pane = new JPanel();
JPanel sj = new JPanel();
pane.setLayout(new BorderLayout());
sj.setLayout(new BorderLayout());
setBounds(400,200,100,200);
sj.add(zz);
pane.add(Text, BorderLayout.NORTH);
pane.add(nkey, BorderLayout.CENTER);
pane.add(sj,BorderLayout.SOUTH);
nkey.one.addKeyListener(this);
nkey.two.addKeyListener(this);
nkey.three.addKeyListener(this);
nkey.four.addKeyListener(this);
nkey.five.addKeyListener(this);
nkey.six.addKeyListener(this);
nkey.seven.addKeyListener(this);
nkey.eight.addKeyListener(this);
nkey.nine.addKeyListener(this);
nkey.zero.addKeyListener(this);
nkey.ce.addKeyListener(this);
nkey.plus.addKeyListener(this);
nkey.equal.addKeyListener(this);
nkey.sub.addKeyListener(this);
nkey.mul.addKeyListener(this);
nkey.div.addKeyListener(this);
nkey.sqrt.addKeyListener(this);
nkey.point.addKeyListener(this);
nkey.ys.addKeyListener(this);
nkey.log.addKeyListener(this);
nkey.qf.addKeyListener(this);
nkey.cos.addKeyListener(this);
nkey.sin.addKeyListener(this);
nkey.tan.addKeyListener(this);
nkey.daoshu.addKeyListener(this);
nkey.lf.addKeyListener(this);
nkey.pf.addKeyListener(this);
nkey.xy.addKeyListener(this);
nkey.one.addActionListener(this);
nkey.two.addActionListener(this);
nkey.three.addActionListener(this);
nkey.four.addActionListener(this);
nkey.five.addActionListener(this);
nkey.six.addActionListener(this);
nkey.seven.addActionListener(this);
nkey.eight.addActionListener(this);
nkey.nine.addActionListener(this);
nkey.zero.addActionListener(this);
nkey.ce.addActionListener(this);
nkey.plus.addActionListener(this);
nkey.equal.addActionListener(this);
nkey.sub.addActionListener(this);
nkey.mul.addActionListener(this);
nkey.div.addActionListener(this);
nkey.sqrt.addActionListener(this);
nkey.point.addActionListener(this);
nkey.ys.addActionListener(this);
nkey.log.addActionListener(this);
nkey.qf.addActionListener(this);
nkey.cos.addActionListener(this);
nkey.sin.addActionListener(this);
nkey.tan.addActionListener(this);
nkey.daoshu.addActionListener(this);
nkey.lf.addActionListener(this);
nkey.pf.addActionListener(this);
nkey.xy.addActionListener(this);
setContentPane(pane);
this.setResizable(false);
pack();
}
public void actionPerformed(ActionEvent event){
if (event.getSource() == nkey.one) {
if (flag ||finput) {
Text.setText("1");
flag = false;
finput =false;
} else {
text = Text.getText();
Text.setText(text + "1");
}
}
else if (event.getSource() == nkey.two) {
if (flag || finput) {
Text.setText("2");
flag = false;
finput =false;
} else {
text = Text.getText();
Text.setText(text + "2");
}
}
else if (event.getSource() == nkey.three) {
if (flag || finput) {
Text.setText("3");
flag = false;
finput= false;
} else {
text = Text.getText();
Text.setText(text + "3");
}
}
else if (event.getSource() == nkey.four) {
if (flag || finput) {
Text.setText("4");
flag = false;
finput = false;
} else {
text = Text.getText();
Text.setText(text + "4");
}
}
else if (event.getSource() == nkey.five) {
if (flag || finput) {
Text.setText("5");
flag = false;
finput = false;
} else {
text =Text.getText();
Text.setText(text + "5");
}
}
else if (event.getSource() == nkey.six) {
if (flag || finput) {
Text.setText("6");
flag = false;
finput = false;
} else {
text = Text.getText();
Text.setText(text + "6");
}
}
else if (event.getSource() == nkey.seven) {
if (flag || finput) {
Text.setText("7");
flag = false;
finput=false;
} else {
text = Text.getText();
Text.setText(text + "7");
}
}
else if (event.getSource() == nkey.eight) {
if (flag || finput) {
Text.setText("8");
flag = false;
finput= false;
} else {
text =Text.getText();
Text.setText(text + "8");
}
}
else if (event.getSource() == nkey.nine) {
if (flag ||finput) {
Text.setText("9");
flag = false;
finput= false;
} else {
text =Text.getText();
Text.setText(text + "9");
}
}
else if (event.getSource() == nkey.zero) {
if (flag ||finput) {
Text.setText("0");
flag = false;
finput= false;
}
else {
text = Text.getText();
if (Double.parseDouble(text)!=0)
{
Text.setText(text + "0");
}
else {
if (text.trim().indexOf(".") == -1)
{
Text.setText(text);
}
else {
Text.setText(text + "0");
}
}
}
}
else if (event.getSource() == nkey.ce) {
Text.setText("0");
finput= true;
flag = true;
k=true;
}
else if (event.getSource() == nkey.point) {
if (flag ||finput) {
Text.setText("0.");
flag = false;
finput= false;
} else {
text =Text.getText();
if (text.trim().indexOf(".") == -1) {
Text.setText(text + ".");
} else {
Text.setText(text);
}
}
k=false;
}
else if (event.getSource() == nkey.plus) {
flag = true;
finput= true;
front= Double.parseDouble(Text.getText());
symbol = 1;
}
else if (event.getSource() == nkey.sub) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
symbol = 2;
}
else if (event.getSource() == nkey.mul) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
symbol = 3;
}
else if (event.getSource() == nkey.div) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
symbol = 4;
}
else if (event.getSource() == nkey.xy) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
symbol = 5;
}
else if (event.getSource() == nkey.sqrt) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
double sqrt =Math.sqrt(front);
Text.setText((sqrt+""));
text="";
}
else if (event.getSource() == nkey.ys) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
symbol=6;
}
else if (event.getSource() == nkey.daoshu) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
if(front==0)
{ Text.setText("0");}
else
{
double ds=1/front;
Text.setText((ds+""));
}
text="";
}
else if (event.getSource() == nkey.pf) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
double pf=Math.pow(front,2);
Text.setText((pf+""));
text="";
}
else if (event.getSource() == nkey.lf) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
double lf=Math.pow(front,3);
Text.setText((lf+""));
text="";
}
else if (event.getSource() == nkey.sin) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
double sin=Math.sin(front);
Text.setText((sin+""));
text="";
}
else if (event.getSource() == nkey.cos) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
double cos=Math.cos(front);
Text.setText((cos+""));
text="";
}
else if (event.getSource() == nkey.qf) {
flag = true;
finput =true;
front = Double.parseDouble(Text.getText());
double qf=Math.abs(front);
if(front<=0)Text.setText((qf+""));
else if(front>0)Text.setText(("-"+qf));
text="";
}
else if (event.getSource() == nkey.tan) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
double tan=Math.tan(front);
Text.setText((tan+""));
text="";
}
else if (event.getSource() == nkey.log) {
flag = true;
finput= true;
front = Double.parseDouble(Text.getText());
double log=Math.log(front);
Text.setText((log+""));
text="";
}
else if (event.getSource() == nkey.equal) {
switch (symbol) {
case 1 :
{
double add =
front + Double.parseDouble(Text.getText());
Text.setText(add + "");
finput= true;
text = "";
break;
}
case 2 :
{
double sub =
front - Double.parseDouble(Text.getText());
Text.setText(sub+"");
finput= true;
text = "";
break;
}
case 3 :
{
double mul =
front * Double.parseDouble(Text.getText());
Text.setText(mul + "");
finput= true;
text = "";
break;
}
case 4 :
{
double div =
front / Double.parseDouble(Text.getText());
Text.setText(div + "");
finput= true;
text = "";
break;
}
case 5 :
{
double xy =Math.pow(front,Double.parseDouble(Text.getText()));
Text.setText(xy + "");
finput= true;
text = "";
break;
}
case 6 :
{
double ys=0;
double next=Double.parseDouble(Text.getText());
if(front<next)ys=front;
else if(front==next||front==0||next==0)ys=0;
else
{
while(front>next)
{
front=front-next;
}
if(front==next)ys=0;
else ys=front;
}
Text.setText(ys + "");
finput= true;
text = "";
break;
}
}
}
}
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent event) {
// TODO Auto-generated method stub
String text=Text.getText();
char kc=event.getKeyChar();
if(kc=='.'&&k==true)
{
k=false;
Text.setText(text+kc);
}
else if(kc>='0'&&kc<'9')
{
Text.setText(text+kc);
}
}
public static void main(String[] args) {
jisuanqi JSQ = new jisuanqi();
JSQ.show();
}
}
class NKey extends JPanel {
JButton zero = new JButton("0");
JButton one = new JButton("1");
JButton two = new JButton("2");
JButton three = new JButton("3");
JButton four = new JButton("4");
JButton five = new JButton("5");
JButton six = new JButton("6");
JButton seven = new JButton("7");
JButton eight = new JButton("8");
JButton nine = new JButton("9");
JButton plus = new JButton("+");
JButton sub = new JButton("-");
JButton mul = new JButton("*");
JButton div = new JButton("/");
JButton equal = new JButton("=");
JButton ce = new JButton("清零");
JButton point = new JButton(".");
JButton sqrt = new JButton("sqrt");
JButton ys = new JButton("%");
JButton daoshu = new JButton("1/x");
JButton xy = new JButton("x^y");
JButton pf = new JButton("x^2");
JButton lf = new JButton("x^3");
JButton sin = new JButton("sin");
JButton cos = new JButton("cos");
JButton tan = new JButton("tan");
JButton log = new JButton("log");
JButton qf = new JButton("+/-");
NKey() {
setLayout(new GridLayout(7, 7, 0, 0));
add(ys);add(sqrt);add(ce);add(equal);
add(seven);add(eight);add(nine);add(div);
add(four);add(five);add(six);add(mul);
add(one);add(two);add(three);add(sub);
add(zero);add(point);add(qf);add(plus);
add(daoshu);add(xy);add(pf);add(lf);
add(sin);add(cos);add(tan);add(log);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -