import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat;//Keep decimals
public class SimpleCalculation extends JFrame{
Frame frame = new JFrame();
Frame MistakeWindons = new JFrame();
private JButton SumBtn = new JButton("SUM");
private JButton SubBtn = new JButton("SUB");
private JButton MulBtn = new JButton("MUL");
private JButton DivBtn = new JButton("DIV");
private JButton Reset = new JButton("Reset");
private JTextField FristCount = new JTextField(5);
private JTextField SecondCount = new JTextField(5);
private JTextField Result = new JTextField(10);
private Label Design = new Label("Design by CodingPush");
private Font Ft = new Font("Helvetica", Font.BOLD, 18);//Set font
public SimpleCalculation() {
frame.setResizable(false);//Set to not maximize
frame.setTitle("Simple calculator");
frame.setLocation(600, 400);//Set window position
frame.setSize(300, 180);//Set window size
frame.setLayout(null);
frame.setVisible(true);
frame.add(FristCount);
FristCount.setBounds(10, 10, 60, 20);
frame.add(SecondCount);
SecondCount.setBounds(90, 10, 60, 20);
frame.add(new Label("=")).setBounds(160, 10, 20, 20);
frame.add(Result);
Result.setBounds(180, 10, 100, 20);
frame.add(Design);
Design.setBounds(60, 40, 200, 30);
frame.add(SumBtn);
SumBtn.setBounds(5, 80, 70, 30);
frame.add(SubBtn);
SubBtn.setBounds(75, 80, 70, 30);
frame.add(MulBtn);
MulBtn.setBounds(145, 80, 70, 30);
frame.add(DivBtn);
DivBtn.setBounds(215, 80, 70, 30);
frame.add(Reset);
Reset.setBounds(215,110,70,30);
Design.setFont(Ft);
MyActionListen();
}
private void MyActionListen(){//Event handler
SumBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {//Exception handling, if the input is not a number, it will prompt an input error
String text0 = FristCount.getText();//Convert JTextFiled to String
String text1 = SecondCount.getText();
double a = Double.valueOf(text0);//Convert String type to double
double b = Double.valueOf(text1);
Result.setText(a + b + "");
}
catch (Exception e1){
MistakeWindons.setResizable(false);
MistakeWindons.setLayout(null);
MistakeWindons.setTitle("Wrong Warning!");
MistakeWindons.setSize(200,100);
MistakeWindons.setLocation(550,550);
JLabel Mistake = new JLabel("Wrong Input!!!");
//Mistake.setFont(Ft);
Mistake.setBounds(50,20,100,20);
MistakeWindons.add(Mistake);
MistakeWindons.setVisible(true);
}
}
});
SubBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String text0 = FristCount.getText();//Convert JTextFiled to String
String text1 = SecondCount.getText();
double a = Double.valueOf(text0);//Convert String type to double
double b = Double.valueOf(text1);
Result.setText(a - b + "");
}
catch (Exception e1){
MistakeWindons.setResizable(false);
MistakeWindons.setLayout(null);
MistakeWindons.setTitle("Wrong Warning!");
MistakeWindons.setSize(200,100);
MistakeWindons.setLocation(550,550);
JLabel Mistake = new JLabel("Wrong Input!!!");
//Mistake.setFont(Ft);
Mistake.setBounds(50,20,100,20);
MistakeWindons.add(Mistake);
MistakeWindons.setVisible(true);
}
}
});
MulBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String text0 = FristCount.getText();//Convert JTextFiled to String
String text1 = SecondCount.getText();
double a = Double.valueOf(text0);//Convert String type to double
double b = Double.valueOf(text1);
Result.setText(a * b + "");
}
catch (Exception e1){
MistakeWindons.setResizable(false);
MistakeWindons.setLayout(null);
MistakeWindons.setTitle("Wrong Warning!");
MistakeWindons.setSize(200,100);
MistakeWindons.setLocation(550,550);
JLabel Mistake = new JLabel("Wrong Input!!!");
Mistake.setBounds(50,20,100,20);
MistakeWindons.add(Mistake);
MistakeWindons.setVisible(true);
}
}
});
DivBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String text0 = FristCount.getText();//Convert JTextFiled to String
String text1 = SecondCount.getText();
double a = Double.valueOf(text0);//Convert String type to double
double b = Double.valueOf(text1);
Result.setText(a / b + "");
double c = a/b;
NumberFormat Nf = NumberFormat.getNumberInstance();//Keep decimals
Nf.setMaximumFractionDigits(6);
Result.setText(Nf.format(c));
}
catch (Exception e1){
MistakeWindons.setResizable(false);
MistakeWindons.setLayout(null);
MistakeWindons.setTitle("Wrong Warning!");
MistakeWindons.setSize(200,100);
MistakeWindons.setLocation(550,550);
JLabel Mistake = new JLabel("Wrong Input!!!");
//Mistake.setFont(Ft);
Mistake.setBounds(50,20,100,20);
MistakeWindons.add(Mistake);
MistakeWindons.setVisible(true);
}
}
});
Reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
FristCount.setText("");
SecondCount.setText("");
Result.setText("");
}
});
}
}
class Text{
public static void main(String[] args){
SimpleCalculation simpleCalculation = new SimpleCalculation();
}
}
There is a problem that has not been considered. 0 cannot be used as a divisor.
You can modify the exception handling under the DIV button. Just add 0 as a divisor. You can try to implement it yourself.
Comments
Post a Comment