2014-07-22_163421


 

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.text.MaskFormatter;

import java.awt.Font;
import java.awt.Panel;
import java.awt.FlowLayout;

import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.JTextPane;
import javax.swing.BoxLayout;

import java.awt.CardLayout;

import javax.swing.JButton;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;

import java.awt.Rectangle;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.text.DecimalFormat;

import javax.swing.JLabel;
import javax.swing.JFormattedTextField;

public class EX3 extends JFrame implements ActionListener {

private JPanel contentPane;
private JPanel panel_1;
private JPanel panel_2;
private JPanel panel_3;
private JButton btnBackspace;
private JButton btnPlus;
private JButton btnMinus;
private JButton btnMultiplied;
private JButton btnDivided;
private JPanel panel_4;
private JPanel panel_5;
private JButton btnClear;
private JButton btn7;
private JButton btn8;
private JButton btn9;
private JButton btn4;
private JButton btn5;
private JButton btn6;
private JButton btn1;
private JButton btn2;
private JButton btn3;
private JButton btnDot;
private JButton btn0;
private JButton btnEqual;
private JTextField txtAnswer;
private JButton btnSquare;

public static double No_result1 = 0;//存第一次數值
public static double No_result2 = 0;//存第二次數值
public static byte op;//代表運算子
public static boolean opFlag = false;//代表運算子


class ActList implements ActionListener{
public void actionPerformed(ActionEvent e){
JButton btn = (JButton)e.getSource();
try{
if((btn == btn0) || (btn == btn1) || (btn == btn2) || (btn == btn3) || (btn == btn4) || (btn == btn5) || (btn == btn6) ||
(btn == btn7) || (btn == btn8) || (btn == btn9) || (btn == btnDot)){
if(opFlag == false){
txtAnswer.setText("");
opFlag = true;
}
display_Num(btn);
}else if(btn == btnSquare){ //開根號
opFlag = false;
No_result1 = Double.parseDouble(txtAnswer.getText());
No_result2 = Math.sqrt(No_result1);
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(12);
No_result2 = Double.parseDouble(df.format(Math.round(No_result2/0.000000000001)*0.000000000001));
txtAnswer.setText(String.valueOf(No_result2));
}else if(btn==btnClear){
No_result1 = 0D;
No_result2 = 0L;
op=0;
txtAnswer.setText("0");
opFlag = false;
}else if(btn == btnBackspace){
if(txtAnswer.getText().length() != 0){
txtAnswer.setText(txtAnswer.getText().substring(0, txtAnswer.getText().length() - 1));
if(txtAnswer.getText().length() == 0){
txtAnswer.setText("0");
}
}
}else if(btn==btnPlus){//加
op=1;
opFlag = false;
No_result1 = Double.parseDouble(txtAnswer.getText());
No_result2 = No_result1 + No_result2;
}else if(btn==btnMinus){//減
op=2;
opFlag = false;
No_result1 = Double.parseDouble(txtAnswer.getText());
No_result2 = No_result1 - No_result2;
}else if(btn==btnMultiplied){//乘
op=3;
opFlag = false;
No_result1 = Double.parseDouble(txtAnswer.getText());
No_result2 = No_result1 * No_result2;
}else if(btn==btnDivided){//除
op=4;
opFlag = false;
No_result1 = Double.parseDouble(txtAnswer.getText());
if(No_result2 != 0){
No_result2 = No_result1 / No_result2;
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(10);
No_result2 = Double.parseDouble(df.format(Math.round(No_result2/0.00000001)*0.00000001));
}
}else if(btn==btnEqual){
opFlag = false;
No_result2 = Double.parseDouble(txtAnswer.getText());
switch(op){
case 1:
No_result2 = No_result1 + No_result2;
break;
case 2:
No_result2 = No_result1 - No_result2;
break;
case 3:
No_result2 = No_result1 * No_result2;
break;
case 4:
if(No_result2 != 0){
No_result2 = No_result1 / No_result2;
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(12);
No_result2 = Double.parseDouble(df.format(Math.round(No_result2/0.000000000001)*0.000000000001));
}
else{
JOptionPane.showMessageDialog(EX3.this, "Divided by zero is wrong!");
}
break;
default:
break;
}
txtAnswer.setText(String.valueOf(No_result2));
}
}catch(Exception ex){
ex.printStackTrace();
}
}

private void display_Num(JButton btn){
txtAnswer.setText((txtAnswer.getText()+btn.getText()));
}
}

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
EX3 frame = new EX3();
frame.setSize(400, 500);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public EX3() {
try{
setResizable(false);
setMaximumSize(new Dimension(400, 500));
setPreferredSize(new Dimension(400, 500));
setTitle("JAVA \u8A08\u7B97\u6A5F");
setFont(new Font("Vrinda", Font.PLAIN, 20));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 400, 600);
contentPane = new JPanel();
contentPane.setFont(new Font("Vrinda", Font.PLAIN, 20));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));

JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.NORTH);
panel.setLayout(new BorderLayout(0, 0));
panel.setBorder(new EmptyBorder(5,5,5,5));

txtAnswer = new JTextField();
txtAnswer.setHorizontalAlignment(SwingConstants.RIGHT);
txtAnswer.setFont(new Font("Verdana", Font.PLAIN, 40));
panel.add(txtAnswer, BorderLayout.CENTER);
txtAnswer.setColumns(10);
txtAnswer.setEditable(false);
txtAnswer.setText("0");

panel_1 = new JPanel();
contentPane.add(panel_1, BorderLayout.CENTER);
panel_1.setLayout(new BorderLayout(0, 0));

panel_2 = new JPanel();
panel_2.setMinimumSize(new Dimension(400, 600));
panel_2.setMaximumSize(new Dimension(400, 600));
panel_1.add(panel_2, BorderLayout.EAST);
panel_2.setLayout(new GridLayout(0, 1, 5, 5));
panel_2.setBorder(new EmptyBorder(5,5,5,5));

btnBackspace = new JButton("Backspace");
btnBackspace.addActionListener(new ActList());
btnBackspace.setFont(new Font("微軟正黑體", Font.PLAIN, 20));
panel_2.add(btnBackspace);

btnPlus = new JButton("+");
btnPlus.addActionListener(new ActList());
btnPlus.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_2.add(btnPlus);

btnMinus = new JButton("-");
btnMinus.addActionListener(new ActList());
btnMinus.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_2.add(btnMinus);

btnMultiplied = new JButton("*");
btnMultiplied.addActionListener(new ActList());
btnMultiplied.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_2.add(btnMultiplied);

btnDivided = new JButton("/");
btnDivided.addActionListener(new ActList());
btnDivided.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_2.add(btnDivided);

btnSquare = new JButton("\u221A");
btnSquare.addActionListener(new ActList());
panel_2.add(btnSquare);

panel_3 = new JPanel();
panel_1.add(panel_3, BorderLayout.CENTER);
panel_3.setLayout(new BorderLayout(0, 0));

panel_4 = new JPanel();
panel_3.add(panel_4, BorderLayout.NORTH);
panel_4.setLayout(new BorderLayout(0, 0));
panel_4.setBorder(new EmptyBorder(5,5,5,5));

btnClear = new JButton("Clear");
btnClear.addActionListener(new ActList());
btnClear.setFont(new Font("Verdana", Font.PLAIN, 20));
btnClear.setPreferredSize(new Dimension(57, 77));
panel_4.add(btnClear);

panel_5 = new JPanel();
panel_3.add(panel_5, BorderLayout.CENTER);
panel_5.setLayout(new GridLayout(0, 3, 5, 5));
//panel_5.setBorder(new EmptyBorder(3,3,3,3));
panel_5.setBorder(new EmptyBorder(5,5,5,5));

btn7 = new JButton("7");
btn7.addActionListener(new ActList());
btn7.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn7);

btn8 = new JButton("8");
btn8.addActionListener(new ActList());
btn8.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn8);

btn9 = new JButton("9");
btn9.addActionListener(new ActList());
btn9.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn9);

btn4 = new JButton("4");
btn4.addActionListener(new ActList());
btn4.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn4);

btn5 = new JButton("5");
btn5.addActionListener(new ActList());
btn5.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn5);

btn6 = new JButton("6");
btn6.addActionListener(new ActList());
btn6.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn6);

btn1 = new JButton("1");
btn1.addActionListener(new ActList());
btn1.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn1);

btn2 = new JButton("2");
btn2.addActionListener(new ActList());
btn2.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn2);

btn3 = new JButton("3");
btn3.addActionListener(new ActList());
btn3.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn3);

btnDot = new JButton(".");
btnDot.addActionListener(new ActList());
btnDot.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btnDot);

btn0 = new JButton("0");
btn0.addActionListener(new ActList());
btn0.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btn0);

btnEqual = new JButton("=");
btnEqual.addActionListener(new ActList());
btnEqual.setFont(new Font("Verdana", Font.PLAIN, 20));
panel_5.add(btnEqual);
}catch(Exception e){ e.printStackTrace(); }

}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "顯示actionPerformed");
}

}  

arrow
arrow
    全站熱搜

    雪貓寶寶 發表在 痞客邦 留言(0) 人氣()