From 36f19c62c2266973818908a10d7962f055714db2 Mon Sep 17 00:00:00 2001 From: krolxon Date: Sat, 17 Feb 2024 20:45:28 +0530 Subject: add build script --- GFrame.java | 219 ------------------------------------------------------------ 1 file changed, 219 deletions(-) delete mode 100644 GFrame.java (limited to 'GFrame.java') diff --git a/GFrame.java b/GFrame.java deleted file mode 100644 index f03c154..0000000 --- a/GFrame.java +++ /dev/null @@ -1,219 +0,0 @@ -/* -* TODO: -* Item positions are hard coded, make them dynamic -* so that window can be set to resizable. -*/ - -import java.util.Vector; -import javax.swing.*; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.Insets; -import java.awt.event.*; -import java.awt.*; -import javax.swing.border.Border; -import java.text.DecimalFormat; - -class RoundBtn implements Border { - private int r; - - RoundBtn(int r) { - this.r = r; - } - - public Insets getBorderInsets(Component c) { - return new Insets(this.r + 1, this.r + 1, this.r + 2, this.r); - } - - public boolean isBorderOpaque() { - return true; - } - - public void paintBorder(Component c, Graphics g, int x, int y, - int width, int height) { - g.drawRoundRect(x, y, width - 1, height - 1, r, r); - } -} - -public class GFrame extends JFrame { - Parser p; - JTextField tf; - - private JButton newButton(String text, int d1, int d2, int d3, int d4) { - JButton b = new JButton(); - // b.setBackground(Color.decode("#F78361")); - b.setBackground(Color.decode("#2B2B2B")); - b.setForeground(Color.decode("#e5e5e5")); - b.setFont((new Font("Times New Roman", Font.PLAIN, 20))); - b.setBounds(d1, d2, d3, d4); - b.setBorder(new RoundBtn(15)); - b.setText(text); - return b; - } - - private void actionAdderForTextField(JButton b, String val) { - b.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - tf.setText(tf.getText() + val); - } - }); - - } - - GFrame(String title) { - this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - this.setTitle(title); - this.getContentPane().setBackground(Color.decode("#111111")); - this.setResizable(false); - - // Text Field - tf = new JTextField(); - tf.setBackground(Color.decode("#2B2B2B")); - tf.setForeground(Color.decode("#e5e5e5")); - tf.setMargin(new Insets(0, 10, 0, 10)); - tf.setBounds(40, 50, 310, 40); - tf.setFont((new Font("Times New Roman", Font.PLAIN, 20))); - tf.setBorder(new RoundBtn(5)); - - // History Text Field - History history = new History(); - JTextArea tHist = new JTextArea(); - tHist.setBounds(380, 50, 200, 240); - tHist.setEditable(false); - tHist.setBorder(new RoundBtn(5)); - tHist.setBackground(Color.decode("#2B2B2B")); - tHist.setForeground(Color.decode("#e5e5e5")); - tHist.setFont((new Font("Times New Roman", Font.PLAIN, 20))); - tHist.setBorder(new RoundBtn(5)); - tHist.setMargin(new Insets(0, 10, 0, 10)); - - // Buttons - JButton bEval = newButton("=", 250, 100, 100, 40); - JButton bClear = newButton("CL", 180, 100, 60, 40); - JButton bClearHistory = newButton("Clear History", 380, 300, 200, 40); - JButton bAdd = newButton("+", 250, 300, 100, 40); - JButton bSub = newButton("-", 250, 250, 100, 40); - JButton bMul = newButton("x", 250, 200, 100, 40); - JButton bDiv = newButton("%", 250, 150, 100, 40); - JButton bCut = newButton("", 180, 300, 60, 40); - bCut.setFont(new Font("JetBrainsMono Nerd Font", Font.PLAIN, 20)); - JButton bRightPar = newButton(")", 110, 100, 60, 40); - JButton bLeftPar = newButton("(", 40, 100, 60, 40); - JButton bDoubleZero = newButton("00", 40, 300, 60, 40); - JButton bZero = newButton("0", 110, 300, 60, 40); - JButton bOne = newButton("1", 40, 250, 60, 40); - JButton bTwo = newButton("2", 110, 250, 60, 40); - JButton bThree = newButton("3", 180, 250, 60, 40); - JButton bFour = newButton("4", 40, 200, 60, 40); - JButton bFive = newButton("5", 110, 200, 60, 40); - JButton bSix = newButton("6", 180, 200, 60, 40); - JButton bSeven = newButton("7", 40, 150, 60, 40); - JButton bEight = newButton("8", 110, 150, 60, 40); - JButton bNine = newButton("9", 180, 150, 60, 40); - - // Add the buttons to the Frame - this.add(bEval); - this.add(bClear); - this.add(bClearHistory); - this.add(bAdd); - this.add(bSub); - this.add(bMul); - this.add(bDiv); - this.add(bCut); - this.add(bRightPar); - this.add(bLeftPar); - this.add(bDoubleZero); - this.add(bZero); - this.add(bOne); - this.add(bTwo); - this.add(bThree); - this.add(bFour); - this.add(bFive); - this.add(bSix); - this.add(bSeven); - this.add(bEight); - this.add(bNine); - this.add(tf); - this.add(tHist); - this.setSize(600, 400); - this.setLayout(null); - this.setVisible(true); - - JLabel label = new JLabel("Enter Expression: "); - label.setFont((new Font("Times New Roman", Font.PLAIN, 20))); - label.setBounds(40, 20, 150, 40); - label.setForeground(Color.decode("#e5e5e5")); - this.add(label); - - // ActionsListeners - bEval.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (tf.getText().length() != 0) { - String expression = tf.getText(); - DecimalFormat format = new DecimalFormat(); - p = new Parser(tf.getText()); - String formattedResult = format.format(p.eval()); - tf.setText(formattedResult); - - tHist.setText(""); - Vector s = history.getHistory(); - s.add(expression + " = " + formattedResult); - for (int i = 0; i < s.size(); i++) { - // tHist.setText(new String(s.get(i).concat(tHist.getText())).concat("\n")); - tHist.append(s.get(i)); - tHist.append("\n"); - } - - } else { - tf.setText("No input"); - } - } - }); - - // Common actions that just appends the symbols to the text field - actionAdderForTextField(bAdd, "+"); - actionAdderForTextField(bSub, "-"); - actionAdderForTextField(bMul, "*"); - actionAdderForTextField(bDiv, "/"); - actionAdderForTextField(bRightPar, ")"); - actionAdderForTextField(bLeftPar, "("); - actionAdderForTextField(bDoubleZero, "00"); - actionAdderForTextField(bZero, "0"); - actionAdderForTextField(bOne, "1"); - actionAdderForTextField(bTwo, "2"); - actionAdderForTextField(bThree, "3"); - actionAdderForTextField(bFour, "4"); - actionAdderForTextField(bFive, "5"); - actionAdderForTextField(bSix, "6"); - actionAdderForTextField(bSeven, "7"); - actionAdderForTextField(bEight, "8"); - actionAdderForTextField(bNine, "9"); - - bClear.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - tf.setText(""); - } - }); - - bClearHistory.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - history.clearHistory(); - tHist.setText(""); - } - }); - - bCut.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - String text = tf.getText(); - tf.setText(text.substring(0, text.length() - 1)); - } - }); - - // bOne.addActionListener(new ActionListener() { - // public void actionPerformed(ActionEvent e) { - // tf.setText(tf.getText() + "1"); - // } - // }); - } -} -- cgit v1.2.3