Init commit
BIN
Calc.jar
Normal file
566
Gui.java
Normal file
|
|
@ -0,0 +1,566 @@
|
|||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import javax.swing.*;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class Gui extends JFrame {
|
||||
private JPanel fieldPanel, buttonsPanel;
|
||||
private JTextField field;
|
||||
private JButton sqrt, npower, square, recip,
|
||||
clearAll, bckSpc, percent, div,
|
||||
but7, but8, but9, mult,
|
||||
but4, but5, but6, sub,
|
||||
but1, but2, but3, add,
|
||||
sign, but0, pnt, equals;
|
||||
|
||||
private boolean powerPressed, divPressed, multPressed, subPressed, addPressed, cleared, dotQueued, newEq;
|
||||
private double storedVal;
|
||||
|
||||
public Gui(String s) {
|
||||
super(s);
|
||||
setFocusable(true);
|
||||
requestFocusInWindow();
|
||||
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD0, 0), "0");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD1, 0), "1");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD2, 0), "2");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD3, 0), "3");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD4, 0), "4");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD5, 0), "5");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD6, 0), "6");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD7, 0), "7");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD8, 0), "8");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD9, 0), "9");
|
||||
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_0, 0), "0");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_1, 0), "1");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_2, 0), "2");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_3, 0), "3");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_4, 0), "4");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_5, 0), "5");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_6, 0), "6");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_7, 0), "7");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_8, 0), "8");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_9, 0), "9");
|
||||
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("shift 6"), "npower");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("shift 5"), "percent");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_SLASH, 0), "div");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_DIVIDE, 0), "div");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("shift 8"), "mult");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_MULTIPLY, 0), "mult");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0), "sub");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, 0), "sub");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, InputEvent.SHIFT_DOWN_MASK), "add");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, 0), "add");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_PERIOD, 0), "dot");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_DECIMAL, 0), "dot");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, 0), "equals");
|
||||
((JPanel)getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "equals");
|
||||
|
||||
((JPanel)getContentPane()).getActionMap().put("0", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(0);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("1", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(1);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("2", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(2);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("3", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(3);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("4", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(4);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("5", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(5);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("6", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(6);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("7", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(7);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("8", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(8);
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("9", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addNum(9);
|
||||
}
|
||||
});
|
||||
|
||||
((JPanel)getContentPane()).getActionMap().put("npower", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
exponent();
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("percent", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
percentage();
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("div", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
divide();
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("mult", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
multiply();
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("sub", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
subtract();
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("add", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
addition();
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("dot", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
if (!field.getText().contains(".")) dotQueued = true;
|
||||
}
|
||||
});
|
||||
((JPanel)getContentPane()).getActionMap().put("equals", new AbstractAction() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
doEquals();
|
||||
newEq = true;
|
||||
}
|
||||
});
|
||||
|
||||
setUIFont(new javax.swing.plaf.FontUIResource("SansSerif",Font.PLAIN,32));
|
||||
try {
|
||||
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
initComponents();
|
||||
|
||||
powerPressed = false;
|
||||
divPressed = false;
|
||||
multPressed = false;
|
||||
subPressed = false;
|
||||
addPressed = false;
|
||||
cleared = false;
|
||||
dotQueued = false;
|
||||
newEq = false;
|
||||
}
|
||||
|
||||
private void initComponents() {
|
||||
setLayout(new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS));
|
||||
fieldPanel = new JPanel();
|
||||
buttonsPanel = new JPanel(new GridLayout(6, 4));
|
||||
|
||||
field = new JTextField() {
|
||||
public Dimension getPreferredSize() {
|
||||
return new Dimension(buttonsPanel.getWidth() - 6, 50);
|
||||
};
|
||||
};
|
||||
field.setEditable(false);
|
||||
field.setBackground(Color.WHITE);
|
||||
field.setText("0");
|
||||
field.setHorizontalAlignment(SwingConstants.RIGHT);
|
||||
|
||||
sqrt = new JButton(new ImageIcon(new ImageIcon("sqrt.png").getImage().getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
|
||||
sqrt.setBackground(Color.LIGHT_GRAY);
|
||||
sqrt.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
field.setText(String.valueOf(Math.sqrt(Double.parseDouble(field.getText()))));
|
||||
}
|
||||
});
|
||||
|
||||
square = new JButton(new ImageIcon(new ImageIcon("squared.png").getImage().getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
|
||||
square.setBackground(Color.LIGHT_GRAY);
|
||||
square.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
field.setText(String.valueOf(Math.pow(Double.parseDouble(field.getText()), 2)));
|
||||
if (Double.parseDouble(field.getText()) == Math.round(Double.parseDouble(field.getText()))) field.setText(String.valueOf(Math.round(Double.parseDouble(field.getText()))));
|
||||
}
|
||||
});
|
||||
npower = new JButton(new ImageIcon(new ImageIcon("npower.png").getImage().getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
|
||||
npower.setBackground(Color.LIGHT_GRAY);
|
||||
npower.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
exponent();
|
||||
}
|
||||
});
|
||||
recip = new JButton(new ImageIcon(new ImageIcon("inverse.png").getImage().getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
|
||||
recip.setBackground(Color.LIGHT_GRAY);
|
||||
recip.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
field.setText(String.valueOf(Math.pow(Double.parseDouble(field.getText()), -1)));
|
||||
if (Double.parseDouble(field.getText()) == Math.round(Double.parseDouble(field.getText()))) field.setText(String.valueOf(Math.round(Double.parseDouble(field.getText()))));
|
||||
}
|
||||
});
|
||||
clearAll = new JButton("C");
|
||||
clearAll.setBackground(Color.RED);
|
||||
clearAll.setForeground(Color.WHITE);
|
||||
clearAll.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
field.setText("0");
|
||||
npower.setBackground(Color.LIGHT_GRAY);
|
||||
div.setBackground(Color.LIGHT_GRAY);
|
||||
mult.setBackground(Color.LIGHT_GRAY);
|
||||
sub.setBackground(Color.LIGHT_GRAY);
|
||||
add.setBackground(Color.LIGHT_GRAY);
|
||||
powerPressed = false;
|
||||
divPressed = false;
|
||||
multPressed = false;
|
||||
subPressed = false;
|
||||
addPressed = false;
|
||||
cleared = false;
|
||||
}
|
||||
});
|
||||
bckSpc = new JButton(new ImageIcon(new ImageIcon("back.png").getImage().getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
|
||||
bckSpc.setBackground(Color.PINK);
|
||||
bckSpc.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (field.getText() != null && field.getText().length() > 0) {
|
||||
field.setText(field.getText().substring(0, field.getText().length() - 1));
|
||||
}
|
||||
if (field.getText().trim().length() == 0) field.setText("0");
|
||||
}
|
||||
});
|
||||
percent = new JButton("%");
|
||||
percent.setBackground(Color.LIGHT_GRAY);
|
||||
percent.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
percentage();
|
||||
}
|
||||
});
|
||||
div = new JButton(new ImageIcon(new ImageIcon("div.png").getImage().getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
|
||||
div.setBackground(Color.LIGHT_GRAY);
|
||||
div.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
doEquals();
|
||||
storedVal = Double.parseDouble(field.getText());
|
||||
div.setBackground(Color.GRAY);
|
||||
divPressed = true;
|
||||
}
|
||||
});
|
||||
but7 = new JButton("7");
|
||||
but7.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(7);
|
||||
}
|
||||
});
|
||||
but8 = new JButton("8");
|
||||
but8.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(8);
|
||||
}
|
||||
});
|
||||
but9 = new JButton("9");
|
||||
but9.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(9);
|
||||
}
|
||||
});
|
||||
mult = new JButton(new ImageIcon(new ImageIcon("mult.png").getImage().getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
|
||||
mult.setBackground(Color.LIGHT_GRAY);
|
||||
mult.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
doEquals();
|
||||
storedVal = Double.parseDouble(field.getText());
|
||||
mult.setBackground(Color.GRAY);
|
||||
multPressed = true;
|
||||
}
|
||||
});
|
||||
but4 = new JButton("4");
|
||||
but4.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(4);
|
||||
}
|
||||
});
|
||||
but5 = new JButton("5");
|
||||
but5.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(5);
|
||||
}
|
||||
});
|
||||
but6 = new JButton("6");
|
||||
but6.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(6);
|
||||
}
|
||||
});
|
||||
sub = new JButton("-");
|
||||
sub.setBackground(Color.LIGHT_GRAY);
|
||||
sub.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
subtract();
|
||||
}
|
||||
});
|
||||
but1 = new JButton("1");
|
||||
but1.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(1);
|
||||
}
|
||||
});
|
||||
but2 = new JButton("2");
|
||||
but2.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(2);
|
||||
}
|
||||
});
|
||||
but3 = new JButton("3");
|
||||
but3.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(3);
|
||||
}
|
||||
});
|
||||
add = new JButton("+");
|
||||
add.setBackground(Color.LIGHT_GRAY);
|
||||
add.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addition();
|
||||
}
|
||||
});
|
||||
sign = new JButton(new ImageIcon(new ImageIcon("sign.png").getImage().getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
|
||||
sign.setBackground(Color.LIGHT_GRAY);
|
||||
sign.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (!field.getText().equals("0")) {
|
||||
if (field.getText().charAt(0) == '-') field.setText(field.getText().substring(1));
|
||||
else field.setText("-" + field.getText());
|
||||
}
|
||||
}
|
||||
});
|
||||
but0 = new JButton("0");
|
||||
but0.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
addNum(0);
|
||||
}
|
||||
});
|
||||
pnt = new JButton(".");
|
||||
pnt.setBackground(Color.LIGHT_GRAY);
|
||||
pnt.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (!field.getText().contains(".")) dotQueued = true;
|
||||
}
|
||||
});
|
||||
equals = new JButton("=");
|
||||
equals.setBackground(Color.ORANGE);
|
||||
equals.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
doEquals();
|
||||
newEq = true;
|
||||
}
|
||||
});
|
||||
|
||||
fieldPanel.add(field);
|
||||
|
||||
buttonsPanel.add(sqrt);
|
||||
buttonsPanel.add(square);
|
||||
buttonsPanel.add(npower);
|
||||
buttonsPanel.add(recip);
|
||||
buttonsPanel.add(clearAll);
|
||||
buttonsPanel.add(bckSpc);
|
||||
buttonsPanel.add(percent);
|
||||
buttonsPanel.add(div);
|
||||
buttonsPanel.add(but7);
|
||||
buttonsPanel.add(but8);
|
||||
buttonsPanel.add(but9);
|
||||
buttonsPanel.add(mult);
|
||||
buttonsPanel.add(but4);
|
||||
buttonsPanel.add(but5);
|
||||
buttonsPanel.add(but6);
|
||||
buttonsPanel.add(sub);
|
||||
buttonsPanel.add(but1);
|
||||
buttonsPanel.add(but2);
|
||||
buttonsPanel.add(but3);
|
||||
buttonsPanel.add(add);
|
||||
buttonsPanel.add(sign);
|
||||
buttonsPanel.add(but0);
|
||||
buttonsPanel.add(pnt);
|
||||
buttonsPanel.add(equals);
|
||||
|
||||
add(fieldPanel);
|
||||
add(buttonsPanel);
|
||||
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Exit when close button clicked
|
||||
pack();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void setUIFont (javax.swing.plaf.FontUIResource f) {
|
||||
java.util.Enumeration keys = UIManager.getDefaults().keys();
|
||||
while (keys.hasMoreElements()) {
|
||||
Object key = keys.nextElement();
|
||||
Object value = UIManager.get (key);
|
||||
if (value instanceof javax.swing.plaf.FontUIResource) UIManager.put(key, f);
|
||||
}
|
||||
}
|
||||
|
||||
private void addNum(int num) {
|
||||
if (newEq) {
|
||||
field.setText("");
|
||||
newEq = false;
|
||||
}
|
||||
|
||||
if (dotQueued) {
|
||||
field.setText(field.getText() + ".");
|
||||
dotQueued = false;
|
||||
}
|
||||
if (powerPressed || divPressed || multPressed || subPressed || addPressed) {
|
||||
if (!cleared) {
|
||||
field.setText(String.valueOf(num));
|
||||
cleared = true;
|
||||
} else {
|
||||
if (field.getText().equals("0")) field.setText(String.valueOf(num));
|
||||
else field.setText(field.getText() + num);
|
||||
}
|
||||
} else {
|
||||
if (field.getText().equals("0")) field.setText(String.valueOf(num));
|
||||
else field.setText(field.getText() + num);
|
||||
}
|
||||
}
|
||||
|
||||
private void doEquals() {
|
||||
if (powerPressed) {
|
||||
field.setText(String.valueOf(Math.pow(storedVal, Double.parseDouble(field.getText()))));
|
||||
npower.setBackground(Color.LIGHT_GRAY);
|
||||
powerPressed = false;
|
||||
} else if (divPressed) {
|
||||
field.setText(String.valueOf(storedVal / Double.parseDouble(field.getText())));
|
||||
div.setBackground(Color.LIGHT_GRAY);
|
||||
divPressed = false;
|
||||
} else if (multPressed) {
|
||||
field.setText(String.valueOf(storedVal * Double.parseDouble(field.getText())));
|
||||
mult.setBackground(Color.LIGHT_GRAY);
|
||||
multPressed = false;
|
||||
} else if (subPressed) {
|
||||
field.setText(String.valueOf(storedVal - Double.parseDouble(field.getText())));
|
||||
sub.setBackground(Color.LIGHT_GRAY);
|
||||
subPressed = false;
|
||||
} else if (addPressed) {
|
||||
field.setText(String.valueOf(storedVal + Double.parseDouble(field.getText())));
|
||||
add.setBackground(Color.LIGHT_GRAY);
|
||||
addPressed = false;
|
||||
}
|
||||
|
||||
cleared = false;
|
||||
if (Double.parseDouble(field.getText()) == Math.round(Double.parseDouble(field.getText()))) field.setText(String.valueOf(Math.round(Double.parseDouble(field.getText()))));
|
||||
}
|
||||
|
||||
private void exponent() {
|
||||
doEquals();
|
||||
storedVal = Double.parseDouble(field.getText());
|
||||
npower.setBackground(Color.GRAY);
|
||||
powerPressed = true;
|
||||
}
|
||||
|
||||
private void percentage() {
|
||||
field.setText(String.valueOf(Double.parseDouble(field.getText())/100));
|
||||
if (Double.parseDouble(field.getText()) == Math.round(Double.parseDouble(field.getText()))) field.setText(String.valueOf(Math.round(Double.parseDouble(field.getText()))));
|
||||
}
|
||||
|
||||
private void divide() {
|
||||
doEquals();
|
||||
storedVal = Double.parseDouble(field.getText());
|
||||
div.setBackground(Color.GRAY);
|
||||
divPressed = true;
|
||||
}
|
||||
|
||||
private void multiply() {
|
||||
doEquals();
|
||||
storedVal = Double.parseDouble(field.getText());
|
||||
mult.setBackground(Color.GRAY);
|
||||
multPressed = true;
|
||||
}
|
||||
|
||||
private void subtract() {
|
||||
doEquals();
|
||||
storedVal = Double.parseDouble(field.getText());
|
||||
sub.setBackground(Color.GRAY);
|
||||
subPressed = true;
|
||||
}
|
||||
|
||||
private void addition() {
|
||||
doEquals();
|
||||
storedVal = Double.parseDouble(field.getText());
|
||||
add.setBackground(Color.GRAY);
|
||||
addPressed = true;
|
||||
}
|
||||
|
||||
/** The entry main() method */
|
||||
public static void main(String[] args) {
|
||||
// Run GUI codes in the Event-Dispatching thread for thread safety
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
new Gui("Calculator");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
BIN
back.png
Normal file
|
After Width: | Height: | Size: 546 B |
BIN
capture.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
8
compilerRunner.bat
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
javac *.java
|
||||
IF EXIST Calc.jar DEL /F Calc.jar
|
||||
jar cfm Calc.jar manifest.txt *.class
|
||||
echo off
|
||||
DEL /F *.class
|
||||
DEL /F *.ctxt
|
||||
cls
|
||||
java -jar Calc.jar
|
||||
BIN
div.png
Normal file
|
After Width: | Height: | Size: 305 B |
BIN
inverse.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
1
manifest.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Main-Class: Gui
|
||||
BIN
mult.png
Normal file
|
After Width: | Height: | Size: 233 B |
BIN
npower.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
sign.png
Normal file
|
After Width: | Height: | Size: 210 B |
BIN
sqrt.png
Normal file
|
After Width: | Height: | Size: 486 B |
BIN
squared.png
Normal file
|
After Width: | Height: | Size: 811 B |