大家好,又见面了,我是你们的朋友全栈君。
若觉得有用请点赞或关注~以后会发布更多有用的内容。
JAVA语言实现计算器
Design By 海上的雨
软件界面如下
完整实现代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Jisuanqi {
public static void main(String[] args) {
new MyFrame("计算器");
}
}
class MyFrame extends Frame{
private static final long serialVersionUID = 1L;
private TextArea ta,tb;
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);
tb = new TextArea(" DESIGN BY 海与怡",8,52,3);
tb.setBackground(Color.pink);
tb.setSize(190,25);
tb.setFont(new Font("标楷体", Font.BOLD, 16));
tb.setForeground(Color.blue);
tb.setLocation(20,130);
this.add(ta);
this.add(tb);
}
@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);
tb.setEditable(false);
this.setCursor(Cursor.HAND_CURSOR);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
若觉得有用请点赞或关注~以后会发布更多有用的内容。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161760.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...