?? frameapp.java
字號:
package calculator;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.BorderFactory;
import java.awt.Color;
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;
public class FrameApp extends JFrame {
private BigDecimal op;
private BigDecimal result;
private boolean add, subtract, multiply, divide;
private String source = "";
JPanel contentPane;
JLabel jLabel1 = new JLabel();
FlowLayout flowLayout1 = new FlowLayout();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JButton jButton6 = new JButton();
JButton jButton7 = new JButton();
JButton jButton8 = new JButton();
JButton jButton9 = new JButton();
JButton jButton10 = new JButton();
JButton jButton11 = new JButton();
JButton jButton12 = new JButton();
JButton jButton13 = new JButton();
JButton jButton14 = new JButton();
JButton jButton15 = new JButton();
JButton jButton16 = new JButton();
JButton jButton17 = new JButton();
JButton jButton18 = new JButton();
JButton jButton19 = new JButton();
JButton jButton20 = new JButton();
public FrameApp() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(flowLayout1);
setSize(new Dimension(260, 200));
setResizable(false);
setTitle("Calculator");
initJLabel();
initJButton();
addAllCom();
jButton18.addActionListener(new FrameApp_jButton18_actionAdapter(this));
}
void initJLabel() {
jLabel1.setBackground(Color.lightGray);
jLabel1.setBorder(BorderFactory.createLoweredBevelBorder());
jLabel1.setDebugGraphicsOptions(0);
jLabel1.setPreferredSize(new Dimension(250, 30));
jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
jLabel1.setFont(new java.awt.Font("BOLD", Font.PLAIN, 20));
jLabel1.setText("0.");
}
void initJButton() {
jButton1.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton1.setText("7");
jButton1.addActionListener(new FrameApp_jButton1_actionAdapter(this));
jButton2.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton2.setText("8");
jButton2.addActionListener(new FrameApp_jButton2_actionAdapter(this));
jButton3.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton3.setText("9");
jButton3.addActionListener(new FrameApp_jButton3_actionAdapter(this));
jButton4.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton4.setText("/");
jButton4.addActionListener(new FrameApp_jButton4_actionAdapter(this));
jButton5.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton5.setText("Clr");
jButton5.addActionListener(new FrameApp_jButton5_actionAdapter(this));
jButton6.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton6.setText("4");
jButton6.addActionListener(new FrameApp_jButton6_actionAdapter(this));
jButton7.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
//jButton7.setToolTipText("5");
jButton7.setText("5");
jButton7.addActionListener(new FrameApp_jButton7_actionAdapter(this));
jButton8.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton8.setText("6");
jButton8.addActionListener(new FrameApp_jButton8_actionAdapter(this));
jButton9.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
//jButton9.setToolTipText("");
jButton9.setText("*");
jButton9.addActionListener(new FrameApp_jButton9_actionAdapter(this));
jButton10.setText("Back");
jButton10.addActionListener(new FrameApp_jButton10_actionAdapter(this));
jButton11.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton11.setText("1");
jButton11.addActionListener(new FrameApp_jButton11_actionAdapter(this));
jButton12.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton12.setText("3");
jButton12.addActionListener(new FrameApp_jButton12_actionAdapter(this));
jButton13.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton13.setText("2");
jButton13.addActionListener(new FrameApp_jButton13_actionAdapter(this));
jButton14.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton14.setText("-");
jButton14.addActionListener(new FrameApp_jButton14_actionAdapter(this));
jButton15.setText("Sqrt");
jButton15.addActionListener(new FrameApp_jButton15_actionAdapter(this));
jButton16.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton16.setText("0");
jButton16.addActionListener(new FrameApp_jButton16_actionAdapter(this));
jButton17.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton17.setText(".");
jButton17.addActionListener(new FrameApp_jButton17_actionAdapter(this));
jButton18.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton18.setText("+");
jButton19.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton19.setText("=");
jButton19.addActionListener(new FrameApp_jButton19_actionAdapter(this));
jButton20.setFont(new java.awt.Font("宋體", Font.PLAIN, 15));
jButton20.setText("+/-");
jButton20.addActionListener(new FrameApp_jButton20_actionAdapter(this));
}
void addAllCom() {
contentPane.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));
contentPane.add(jLabel1, null);
contentPane.add(jButton1);
contentPane.add(jButton2);
contentPane.add(jButton3);
contentPane.add(jButton4);
contentPane.add(jButton5);
contentPane.add(jButton6);
contentPane.add(jButton7);
contentPane.add(jButton8);
contentPane.add(jButton9);
contentPane.add(jButton10);
contentPane.add(jButton11);
contentPane.add(jButton13);
contentPane.add(jButton12);
contentPane.add(jButton14);
contentPane.add(jButton15);
contentPane.add(jButton16);
contentPane.add(jButton17);
contentPane.add(jButton18);
contentPane.add(jButton19);
contentPane.add(jButton20);
}
private boolean isDouble(String source) { //whether JLabel.String=>Numeral has decimal point
for (int i = 0; i < source.length(); i++)
if (source.charAt(i) == '.')
return true;
return false;
}
public void jButton17_actionPerformed(ActionEvent e) { //decimal point
if (!source.equals("")) {
if (!isDouble(source)) {
source += ".";
jLabel1.setText(source);
}
} else {
source = "0.";
jLabel1.setText(source);
}
}
public void jButton16_actionPerformed(ActionEvent e) { //number 0
//System.out.println("0");
// System.out.println("1");
if (!source.equals("")) {
source += "0";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
} else if (!jLabel1.getText().equals("0.")) {
source += "0";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
}
public void jButton11_actionPerformed(ActionEvent e) { //number 1
source += "1";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton13_actionPerformed(ActionEvent e) { //number 2
source += "2";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton5_actionPerformed(ActionEvent e) { //clear
source = "";
jLabel1.setText("0.");
result = op = null;
}
public void jButton12_actionPerformed(ActionEvent e) { //number 3
source += "3";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton6_actionPerformed(ActionEvent e) { //number 4
source += "4";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton7_actionPerformed(ActionEvent e) { //number 5
source += "5";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton8_actionPerformed(ActionEvent e) { //number 6
source += "6";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton1_actionPerformed(ActionEvent e) { //number 7
source += "7";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton2_actionPerformed(ActionEvent e) { //number 8
source += "8";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton3_actionPerformed(ActionEvent e) { //number 9
source += "9";
if (!isDouble(source)) {
jLabel1.setText(source + ".");
} else {
jLabel1.setText(source);
}
}
public void jButton10_actionPerformed(ActionEvent e) { //backspace
if (!source.equals("")) {
if (isDouble(source)) {
if (source.charAt(source.length() - 1) != '.') {
source = source.substring(0, source.length() - 1);
jLabel1.setText(source);
} else if (source.length() == 2) {
source = "";
jLabel1.setText("0.");
} else {
source = source.substring(0, source.length() - 2);
jLabel1.setText(source + ".");
}
} else if (source.length() == 1) {
source = "";
jLabel1.setText("0.");
} else {
source = source.substring(0, source.length() - 1);
jLabel1.setText(source + ".");
}
}
}
public void jButton19_actionPerformed(ActionEvent e) { //operator "="
if (result != null) {
if (!source.equals("")) {
op = new BigDecimal(jLabel1.getText());
if (add == true)
result = result.add(op);
else if (subtract == true)
result = result.subtract(op);
else if (multiply == true)
result = result.multiply(op);
else {
if (op.doubleValue() != 0)
result = result.divide(op, 15, BigDecimal.ROUND_HALF_UP);
}
source = "";
} else {
if (add == true)
result = result.add(op);
else if (subtract == true)
result = result.subtract(op);
else if (multiply == true)
result = result.multiply(op);
else {
if (op.doubleValue() != 0)
result = result.divide(op, 15, BigDecimal.ROUND_HALF_UP);
}
}
//System.out.println(result.doubleValue());
if (divide == true && op.doubleValue() == 0)
jLabel1.setText("divisor can not be 0");
else if (isDouble(result.toString()))
jLabel1.setText(result.toString());
else
jLabel1.setText(result.toString() + ".");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -