package TASK;
//对第一类计算器的描述
//问题:将运算符用下拉框实现
//改进:添加背景图片,下拉框选择运算符
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
public class Task2Operator1 {
public static void main(String args[]) {
new MyFrame("Task2");
}
}
class MyFrame extends Frame {
MyFrame(String s) {
super(s);
//
setLayout(new GridLayout(2, 1));
setSize(400, 450);
setVisible(true);
setBackground(Color.CYAN);
addWindowListener(new MyWindowListener());
// this.setLayout(null);
// BackGround bg = new BackGround();
MyPanel p1 = new MyPanel();
// Panel p1 = new Panel(new BorderLayout());
Panel p2 = new Panel(new GridLayout(6, 2));
//final JComboBox box = new JComboBox();
// add(bg);
add(p1);
add(p2);
//
//JComboBox box2 = new JComboBox();
Label num1 = new Label("操作数1:");
Label op = new Label("运算符:");
Label num2 = new Label("操作数2:");
Label result = new Label("结果是:");
final TextField ft1 = new TextField(10);
ft1.setText("0");
/*
* String array[] = {"+","-","*","/"}; box = new JComboBox(array);
*/
final TextField ft2 = new TextField(1);
ft2.setText("+");
final TextField ft3 = new TextField(10);
ft3.setText("0");
final TextField ft4 = new TextField(20);
ft4.setText("0.0");
ft4.setEditable(false);
Button btu1 = new Button("计算");
Button btu2 = new Button("重置");
p2.add(num1);
p2.add(ft1);
p2.add(op);
p2.add(ft2);
p2.add(num2);
p2.add(ft3);
p2.add(result);
p2.add(ft4);
p2.add(btu1);
p2.add(btu2);
btu1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double n1 = Integer.parseInt(ft1.getText());
String opre = ft2.getText();
double n3 = Integer.parseInt(ft3.getText());
try {
switch (opre) {
case "+":
ft4.setText("" + (n1 + n3));
break;
case "-":
ft4.setText("" + (n1 - n3));
break;
case "*":
ft4.setText("" + (n1 * n3));
break;
case "/":
if (n3 == 0) {
JOptionPane.showMessageDialog(null, "输入错误,除数不能为0",
"系统信息", JOptionPane.INFORMATION_MESSAGE);
} else {
ft4.setText("" + (n1 / n3));
}
break;
default:
JOptionPane.showMessageDialog(null, "只限于基本(+,-*,/)运算",
"运算符错误", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
btu2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try {
ft1.setText("0");
ft2.setText("+");
ft3.setText("0");
ft4.setText("0.0");
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
}
}
class MyPanel extends Panel {
public void paint(Graphics g) {
int width = 160;
int height = 40;
// 字体
g.setColor(Color.BLUE);
g.setFont(new Font("楷体", Font.BOLD, 40));
g.drawString("计算器", 130, 90);
}
}
// windowListener关闭监听器
class MyWindowListener extends WindowAdapter {
public void windowClosing(WindowEvent e) {
Window window = (Window) e.getComponent();
window.dispose();
}
}
/*
* class BackGround extends Panel{ public void paint(Graphics g){ //图片 Image i =
* new ImageIcon("background/1.jpg").getImage(); g.drawImage(i,0, 0,
* 400,450,null);
*
* } }
*/
JAVA计算器
最新推荐文章于 2022-05-27 18:02:16 发布