实验十

package 实验十;

 

import java.awt.*;

import java.awt.event.*;

public class Jisuanqi {

public static void main(String[] args) {

new MyFrame("计算器");

}

}

class MyFrame extends Frame{

private static final long serialVersionUID = 1L;

private TextArea ta;

public MyFrame(String title){

super(title);

SetTextAreas();

SetButtonArea();

SetMainFram();

}

private void SetButtonArea() {

addButton("7",33,28,20,178);

addButton("8",33,28,58,178);

addButton("9",33,28,96,178);

addButton("/",33,28,134,178);

addButton("%",33,28,172,178);

addButton("4",33,28,20,210);

addButton("5",33,28,58,210);

addButton("6",33,28,96,210);

addButton("*",33,28,134,210);

addButton("1/x",33,28,172,210);

addButton("1",33,28,20,242);

addButton("2",33,28,58,242);

addButton("3",33,28,96,242);

addButton("-",33,28,134,242);

addButton("0",71,28,20,274);

addButton(".",33,28,96,274);

addButton("+",33,28,134,274);

addButton("=",33,60,172,242);

}

double m,n;

String k;

boolean flag =true;

boolean flag2 =false;

private void addButton(String string, int i, int j,int x,int y) {

final Button b = new Button(string);

b.setLocation(x, y);

b.setSize(i, j);

b.setFont(new Font("标楷体", Font.BOLD, 15));

b.setBackground(Color.pink);

b.setForeground(Color.darkGray);

b.addMouseListener(new MouseAdapter() {

@Override

public void mousePressed(MouseEvent e) {

counts();

}

private void counts() {

if(ta.getText().equals("")&&(b.getActionCommand().equals("+")||

b.getActionCommand().equals("-")||

b.getActionCommand().equals("*")||

b.getActionCommand().equals("/")||

b.getActionCommand().equals("%")||

b.getActionCommand().equals("1/x")||

b.getActionCommand().equals("="))) {

}else if(ta.getText().equals(".")&&(b.getActionCommand().equals("+")||

b.getActionCommand().equals("-")||

b.getActionCommand().equals("*")||

b.getActionCommand().equals("/")||

b.getActionCommand().equals("%")||

b.getActionCommand().equals("1/x")||

b.getActionCommand().equals("="))){

}else {

if( b.getActionCommand().equals("+")||

b.getActionCommand().equals("-")||

b.getActionCommand().equals("*")||

b.getActionCommand().equals("%")||

b.getActionCommand().equals("1/x")||

b.getActionCommand().equals("/")){

if(flag2 = true) {

flag2 = false;

}

if(flag) {

n = new Double(ta.getText()).doubleValue();

flag = false;

}else {

if(k=="="){

}else {

m = new Double(ta.getText()).doubleValue();

if(k == "-") {

if(n==0)

n = m;

else

n=n-m;

}else if(k == "+") {

if(n==0)

n = m;

else

n=n+m;

}else if(k == "*") {

if(n==0)

n = m;

else

n=n*m;

}else if(k=="%"){

if(n==0)

n=m;

else

m=m*100;

}else if(k=="1/x"){

if(n==0)

n=m;

else

n=1/m;

}else if(k == "/") {

if(n==0)

n = m;

else

n=n/m;

}

}

}

k = b.getActionCommand();

ta.setText("");

}else if(b.getActionCommand().equals("=")) {

m = new Double(ta.getText()).doubleValue();

if(k == "+") {

ta.setText("");

ta.append(n+"+"+m);

ta.append(System.getProperty("line.separator"));

n = n+m;

ta.append("="+n);

}else if(k == "-") {

ta.setText("");

ta.append(n+"-"+m);

ta.append(System.getProperty("line.separator"));

n = n-m;

ta.append("="+n);

}else if(k == "*") {

ta.setText("");

ta.append(n+"*"+m);

ta.append(System.getProperty("line.separator"));

n = n*m;

ta.append("="+n);

}else if(k == "%") {

ta.setText("");

ta.append("%"+m);

ta.append(System.getProperty("line.separator"));

m = m*100;

ta.append("="+m+"%");

}else if(k == "1/x") {

ta.setText("");

ta.append(1+"/"+m);

ta.append(System.getProperty("line.separator"));

n = 1/m;

ta.append("="+n);

}else if(k == "/") {

ta.setText("");

ta.append(n+"/"+m);

ta.append(System.getProperty("line.separator"));

n= n/m;

ta.append("="+n);

}

k="=";

flag2 = true;

}else {

if(flag2) {

flag = true;

flag2 = false;

ta.setText("");

m = n =0;

}

ta.append(b.getActionCommand());

}

}

}

});

this.add(b);

}

private void SetTextAreas() {

ta = new TextArea("0",8,52,3);

ta.setBackground(Color.lightGray);

ta.setSize(190, 50);

ta.setFont(new Font("标楷体", Font.BOLD, 15));

ta.setLocation(20,60);

this.add(ta);

this.add(ta);

}

@SuppressWarnings("deprecation")

private void SetMainFram() {

this.setLayout(null);

this.setSize(220,310);

this.setVisible(true);

this.setLocation(310, 340);

this.setResizable(false);

ta.setEditable(false);

this.setCursor(Cursor.HAND_CURSOR);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

}

 

通过本次实验初步了解了awt组件、监听的使用方法,理解了布局管理。

 

posted @ 2019-06-03 18:26  这个包子有点可爱  阅读(321)  评论(0编辑  收藏  举报
Fork me on GitHub