자바 단순 계산기 애플 릿 구현
이번 학기 에 할 일이 없어 서 자바 를 조금 배 웠 습 니 다.프로그램 연습 자 를 쓰 고 싶 습 니 다.조금 만 배 웠 기 때문에 잠시 간단 한 기능 을 실현 하 는 계산기 연습 을 쓸 수 밖 에 없습니다.
기 말 이 와 서 시간 이 별로 없 기 때문에 당분간 가장 간단 한 기능 을 실현 할 수 있다.
개인 적 으로 대량의 문자 로 프로그램 을 설명 하 는 것 을 좋아 하지 않 고 이 프로그램 도 상대 적 으로 간단 하기 때문에 프로그램 프레임 워 크 그림 을 직접 그리고 코드 의 주석 에 맞 추 면 프로그램의 원 리 를 알 수 있다.
그래 픽 계산기 프로그램 프레임 워 크
코드 는 다음 과 같 습 니 다:
package tst.jframe;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Font;
import javax.swing.SwingConstants;
public class javaAP {
/**
*
*
* */
private JFrame frame;
private JTextField result;
private JButton button_1;
private JButton button_2;
private JButton button_3;
private JButton button_4;
private JButton button_5;
private JButton button_6;
private JButton button_7;
private JButton button_8;
private JButton button_9;
private JButton button_0;
private JButton Button_equal;
private JButton button_dot;
private JButton button_d0;
private JButton button_plus;
private JButton button_sub;
private JButton button_clr;
private JButton button_dlt;
private JButton button_mul;
private JButton button_div;
/**
* , 、 , 。
* */
private boolean numflag = false; //
private boolean opflag = false; //
private String txt = null; // ,
private String num_txt = ""; // , , double
private String op = " "; //
private double num1 = 0; //num1 num2
private double num2 = 0;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
javaAP window = new javaAP();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* , 。
*/
public javaAP() {
initialize();
}
/**
* 。
*/
private void initialize() {
frame = new JFrame(); //-----------------------------------------------
frame.setResizable(false); //
frame.setBounds(100, 100, 371, 371); //
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //
frame.getContentPane().setLayout(null); //-----------------------------------------------
result = new JTextField(); //-----------------------------------------------
result.setFont(new Font("Lao UI", Font.BOLD, 15)); //
result.setHorizontalAlignment(SwingConstants.RIGHT); //
result.setBounds(29, 28, 308, 50); //
frame.getContentPane().add(result); //
result.setColumns(10); //
result.setText(txt); //-----------------------------------------------
/**
* 0-9, ,00 , , numBtnAction 。
*
* */
button_0 = new JButton("0");
button_0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("0");
}
});
button_0.setBounds(99, 273, 50, 50);
frame.getContentPane().add(button_0);
button_1 = new JButton("1");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("1");
}
});
button_1.setBounds(99, 213, 50, 50);
frame.getContentPane().add(button_1);
button_2 = new JButton("2");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("2");
}
});
button_2.setBounds(159, 213, 50, 50);
frame.getContentPane().add(button_2);
button_3 = new JButton("3");
button_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("3");
}
});
button_3.setBounds(219, 213, 50, 50);
frame.getContentPane().add(button_3);
button_4 = new JButton("4");
button_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("4");
}
});
button_4.setBounds(99, 157, 50, 50);
frame.getContentPane().add(button_4);
button_5 = new JButton("5");
button_5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("5");
}
});
button_5.setBounds(159, 157, 50, 50);
frame.getContentPane().add(button_5);
button_6 = new JButton("6");
button_6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("6");
}
});
button_6.setBounds(219, 157, 50, 50);
frame.getContentPane().add(button_6);
button_7 = new JButton("7");
button_7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("7");
}
});
button_7.setBounds(99, 97, 50, 50);
frame.getContentPane().add(button_7);
button_8 = new JButton("8");
button_8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("8");
}
});
button_8.setBounds(159, 97, 50, 50);
frame.getContentPane().add(button_8);
button_9 = new JButton("9");
button_9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("9");
}
});
button_9.setBounds(219, 97, 50, 50);
frame.getContentPane().add(button_9);
button_dot = new JButton(".");
button_dot.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction(".");
}
});
button_dot.setFont(new Font(" ", Font.BOLD, 15));
button_dot.setBounds(159, 273, 50, 50);
frame.getContentPane().add(button_dot);
button_d0 = new JButton("00");
button_d0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numBtnAction("00");
}
});
button_d0.setBounds(219, 273, 50, 50);
frame.getContentPane().add(button_d0);
/**
* =,+,-,*,/ 。
* */
Button_equal = new JButton("=");
Button_equal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(opflag == true){
num2 = Double.parseDouble(num_txt); // opflag true , , , num2。
calc(op); //num1 num2 。
}
result.setText(new Double(num1).toString()); // 。
}
});
Button_equal.setBounds(279, 213, 50, 110);
frame.getContentPane().add(Button_equal);
button_plus = new JButton("+");
button_plus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
opBtnAction("+");
}
});
button_plus.setBounds(279, 97, 50, 50);
frame.getContentPane().add(button_plus);
button_sub = new JButton("-");
button_sub.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
opBtnAction("-");
}
});
button_sub.setBounds(279, 157, 50, 50);
frame.getContentPane().add(button_sub);
button_mul = new JButton("*");
button_mul.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
opBtnAction("*");
}
});
button_mul.setBounds(39, 157, 50, 50);
frame.getContentPane().add(button_mul);
button_div = new JButton("/");
button_div.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
opBtnAction("/");
}
});
button_div.setBounds(39, 97, 50, 50);
frame.getContentPane().add(button_div);
/**
* clr: dlt 。
*
* */
button_clr = new JButton("clr");
button_clr.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
result.setText(null); // num_txt,num1 num2 0,
txt = null; //numflag opflag false, 。
numflag = opflag = false;
num1 = num2 = 0;
num_txt = "";
}
});
button_clr.setBounds(39, 273, 50, 50);
frame.getContentPane().add(button_clr);
button_dlt = new JButton("dlt");
button_dlt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(num_txt != "" && num_txt.length() > 0) {
num_txt = num_txt.substring(0, num_txt.length() - 1); //
}
if(txt != null && txt.length() > 0) {
txt = result.getText().substring(0,txt.length() - 1); //
result.setText(txt);
}
}
});
button_dlt.setBounds(39, 213, 50, 50);
frame.getContentPane().add(button_dlt);
}
/**
* 。
*
* @param num
*
* */
private void numBtnAction(String num) {
if(num_txt == "" && opflag == false) { // num_txt ,opflag false,
result.setText(null); // , , 。
num_txt = "";
}
numflag = true; // , numflag true,
num_txt += num; // double
txt = result.getText() + num; // txt, 。
result.setText(txt);
}
/**
*
*
* @param operator
*
* */
private void opBtnAction(String operator) {
if(opflag == false && num_txt != "") { // , opflag false, ,
num1 = Double.parseDouble(num_txt); // num_txt double num1。
}
if(opflag == true && num_txt != ""){
num2 = Double.parseDouble(num_txt); // opflag true, , , , num2
calc(op); // , num1,num2 0, 。
}
numflag = false; //numflag 0,
op = operator; // op
result.setText(operator + " "); //
opflag = true; //opflag true, 。
num_txt = ""; //num_txt , 。
}
/**
* +、-、*、/
* @param op
*
* */
private void calc(String op) {
switch(op){
case "+" :
num1 = num1 + num2;
num2 = 0;
opflag = false;
num_txt = "";
break;
case "-" :
num1 = num1 - num2;
num2 = 0;
opflag = false;
num_txt = "";
break;
case "*" :
if(num2 != 0) {
num1 = num1 * num2;
num2 = 0;
opflag = false;
num_txt = "";
}
break;
case "/" :
if(num2 != 0) {
num1 = num1 / num2;
num2 = 0;
opflag = false;
num_txt = "";
}
break;
default: opflag = false;
num_txt = "";
break;
}
}
}
계산기 에 관 한 멋 진 글 은 보 세 요《계산기 특집》.더 많은 멋 진 것 을 발견 하 기 를 기다 리 겠 습 니 다!이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.