Right now this is my GUI which is done except for a few things. I\'m using eclip
ID: 3626338 • Letter: R
Question
Right now this is my GUI which is done except for a few things. I'm using eclipse to code this. I want the calculator to actually operate the basic functions (x - + /) because only text appears in the jtextfield. Now I want it to "operate". Please help me I am stuck!!!import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.lang.*;
import java.awt.event.*;
import java.awt.peer.ButtonPeer;
import java.util.*;
import java.math.*;
public class Calculator extends JFrame
{
double sum=0;
double subtraction=0;
double division=0;
double multiplication=0;
private final Font BIGGER_FONT = new Font("TimesNewRoman", Font.PLAIN, 20);
JTextField textField1;
private JMenu jmenuFile, jmenuHelp;
private JMenuItem jmenuitemExit, jmenuitemAbout;
public static void main(String args[])
{
Calculator c = new Calculator();
JFrame f = new JFrame("Calculator");
Container lm = c.getContentPane();
c.setSize(800,500);
c.setLocation(100,100);
lm.setBackground(Color.blue);
c.setVisible(true);
c.setTitle("Calculator");
}
public Calculator()
{
setLayout(new GridLayout(4,4,4,4));
textField1 = new JTextField();
add(textField1);
textField1.setSize(1000,1000);
Font f12 = new Font("Times New Roman", 0, 12);
Font f121 = new Font("Times New Roman", 1, 12);
jmenuFile = new JMenu("File");
jmenuFile.setFont(f121);
jmenuFile.setMnemonic(KeyEvent.VK_F);
jmenuitemExit = new JMenuItem("Exit");
jmenuitemExit.setFont(f12);
jmenuitemExit.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_X,
ActionEvent.CTRL_MASK));
jmenuFile.add(jmenuitemExit);
jmenuHelp = new JMenu("Help");
jmenuHelp.setFont(f121);
jmenuHelp.setMnemonic(KeyEvent.VK_H);
jmenuitemAbout = new JMenuItem("About Calculator");
jmenuitemAbout.setFont(f12);
jmenuHelp.add("Author");
JMenuBar ac = new JMenuBar();
ac.add(jmenuFile);
ac.add(jmenuHelp);
setJMenuBar(ac);
//This marks the beginning of the addition of button into my calculator.
setSize(100,150);
JButton num0 = new JButton("0");
add(num0);
num0.addActionListener(new bListener());
num0.setLayout(new GridLayout(1,6));
setSize(100,150);
JButton num1 = new JButton("1");
add(num1);
num1.addActionListener(new bListener());
num1.setLayout(new GridLayout(0,1));
setSize(100,150);
JButton num2 = new JButton("2");
add(num2);
num2.addActionListener(new bListener());
num2.setLayout(new GridLayout(0,2));
setSize(100,150);
JButton num3 = new JButton("3");
add(num3);
num3.addActionListener(new bListener());
num3.setLayout(new GridLayout(0,3));
setSize(100,150);
JButton num4 = new JButton("4");
add(num4);
num4.addActionListener(new bListener());
num4.setLayout(new GridLayout(0,4));
setSize(100,150);
JButton num5 = new JButton("5");
add(num5);
num5.addActionListener(new bListener());
num5.setLayout(new GridLayout(0,5));
setSize(100,150);
JButton num6 = new JButton("6");
add(num6);
num6.addActionListener(new bListener());
num6.setLayout(new GridLayout(0,6));
setSize(100,150);
JButton num7 = new JButton("7");
add(num7);
num7.addActionListener(new bListener());
num7.setLayout(new GridLayout(0,7));
setSize(100,150);
JButton num8 = new JButton("8");
add(num8);
num8.addActionListener(new bListener());
num8.setLayout(new GridLayout(0,8));
setSize(100,150);
JButton num9 = new JButton("9");
add(num9);
num9.addActionListener(new bListener());
num9.setLayout(new GridLayout(1,0));
setSize(100,150);
JButton add = new JButton("+");
add(add);
add.addActionListener(new bListener());
add.setLayout(new GridLayout(1,1));
setSize(100,150);
JButton minus = new JButton("-");
add(minus);
minus.addActionListener(new bListener());
minus.setLayout(new GridLayout(1,2));
setSize(100,150);
JButton multiply = new JButton("x");
add(multiply);
multiply.addActionListener(new bListener());
multiply.setLayout(new GridLayout(1,3));
setSize(100,150);
JButton divide = new JButton("/");
add(divide);
divide.addActionListener(new bListener());
divide.setLayout(new GridLayout(1,4));
setSize(100,150);
JButton cos = new JButton("cos");
add(cos);
cos.addActionListener(new bListener());
cos.setLayout(new GridLayout(1,5));
setSize(100,150);
JButton sin = new JButton("sin");
add(sin);
sin.addActionListener(new bListener());
sin.setLayout(new GridLayout(1,6));
setSize(100,150);
JButton tan= new JButton("tan");
add(tan);
tan.addActionListener(new bListener());
tan.setLayout(new GridLayout(1,7));
setSize(100,150);
JButton arcsin = new JButton("arc sin");
add(arcsin);
arcsin.addActionListener(new bListener());
arcsin.setLayout(new GridLayout(1,8));
setSize(100,150);
JButton arccos = new JButton("arc cos");
add(arccos);
arccos.addActionListener(new bListener());
arccos.setLayout(new GridLayout(1,9));
setSize(100,150);
JButton arctan = new JButton("arc tan");
add(arctan);
arctan.addActionListener(new bListener());
arctan.setLayout(new GridLayout(2,0));
setSize(100,150);
JButton enter = new JButton("Enter");
add(enter);
enter.addActionListener(new bListener());
enter.setLayout(new GridLayout(2,0));
setSize(100,150);
JButton deleteB = new JButton("C");
add(deleteB);
deleteB.addActionListener(new bListener());
deleteB.setLayout(new GridLayout(2,0));
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//User Interface code ends here
}
class bListener implements ActionListener
{
public void actionPerformed(ActionEvent e) {
JButton temp = (JButton)e.getSource();
String btext = temp.getText();
String tftext = textField1.getText();
if(btext.equals("C"))
textField1.setText("");
else
textField1.setText(tftext + btext);
}
}
}
Explanation / Answer
I have modified your code to make the basic operations work. I have confirmed that addition, subtraction, division and multiplication are working for the most simplest cases like (7+1) (9*7). I have also provided rough coding for the rest of the functions. I think you will be able to extend the idea provided to cover more cases such as with more digits.etc... Changes I made: I just created a new action listener specifically for the "enter" button. Testing: Copy and paste the below code in Eclipse. To test type in 9+4 and then press "Enter". The program should display the right answer in the box. Do some similar tests. Good luck. import java.awt.*; import java.awt.event.*; import java.util.Scanner; import javax.swing.*; public class Calculator extends JFrame { private final Font BIGGER_FONT = new Font("TimesNewRoman", Font.PLAIN, 20); JTextField textField1; private JMenu jmenuFile, jmenuHelp; private JMenuItem jmenuitemExit, jmenuitemAbout; public static void main(String args[]) { Calculator c = new Calculator(); JFrame f = new JFrame("Calculator"); Container lm = c.getContentPane(); c.setSize(800,500); c.setLocation(100,100); lm.setBackground(Color.blue); c.setVisible(true); c.setTitle("Calculator"); } public Calculator() { setLayout(new GridLayout(4,4,4,4)); textField1 = new JTextField(); add(textField1); textField1.setSize(1000,1000); Font f12 = new Font("Times New Roman", 0, 12); Font f121 = new Font("Times New Roman", 1, 12); jmenuFile = new JMenu("File"); jmenuFile.setFont(f121); jmenuFile.setMnemonic(KeyEvent.VK_F); jmenuitemExit = new JMenuItem("Exit"); jmenuitemExit.setFont(f12); jmenuitemExit.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_X, ActionEvent.CTRL_MASK)); jmenuFile.add(jmenuitemExit); jmenuHelp = new JMenu("Help"); jmenuHelp.setFont(f121); jmenuHelp.setMnemonic(KeyEvent.VK_H); jmenuitemAbout = new JMenuItem("About Calculator"); jmenuitemAbout.setFont(f12); jmenuHelp.add("Author"); JMenuBar ac = new JMenuBar(); ac.add(jmenuFile); ac.add(jmenuHelp); setJMenuBar(ac); //This marks the beginning of the addition of button into my calculator. setSize(100,150); JButton num0 = new JButton("0"); add(num0); num0.addActionListener(new bListener()); num0.setLayout(new GridLayout(1,6)); setSize(100,150); JButton num1 = new JButton("1"); add(num1); num1.addActionListener(new bListener()); num1.setLayout(new GridLayout(0,1)); setSize(100,150); JButton num2 = new JButton("2"); add(num2); num2.addActionListener(new bListener()); num2.setLayout(new GridLayout(0,2)); setSize(100,150); JButton num3 = new JButton("3"); add(num3); num3.addActionListener(new bListener()); num3.setLayout(new GridLayout(0,3)); setSize(100,150); JButton num4 = new JButton("4"); add(num4); num4.addActionListener(new bListener()); num4.setLayout(new GridLayout(0,4)); setSize(100,150); JButton num5 = new JButton("5"); add(num5); num5.addActionListener(new bListener()); num5.setLayout(new GridLayout(0,5)); setSize(100,150); JButton num6 = new JButton("6"); add(num6); num6.addActionListener(new bListener()); num6.setLayout(new GridLayout(0,6)); setSize(100,150); JButton num7 = new JButton("7"); add(num7); num7.addActionListener(new bListener()); num7.setLayout(new GridLayout(0,7)); setSize(100,150); JButton num8 = new JButton("8"); add(num8); num8.addActionListener(new bListener()); num8.setLayout(new GridLayout(0,8)); setSize(100,150); JButton num9 = new JButton("9"); add(num9); num9.addActionListener(new bListener()); num9.setLayout(new GridLayout(1,0)); setSize(100,150); JButton add = new JButton("+"); add(add); add.addActionListener(new bListener()); add.setLayout(new GridLayout(1,1)); setSize(100,150); JButton minus = new JButton("-"); add(minus); minus.addActionListener(new bListener()); minus.setLayout(new GridLayout(1,2)); setSize(100,150); JButton multiply = new JButton("*"); add(multiply); multiply.addActionListener(new bListener()); multiply.setLayout(new GridLayout(1,3)); setSize(100,150); JButton divide = new JButton("/"); add(divide); divide.addActionListener(new bListener()); divide.setLayout(new GridLayout(1,4)); setSize(100,150); JButton cos = new JButton("cos"); add(cos); cos.addActionListener(new bListener()); cos.setLayout(new GridLayout(1,5)); setSize(100,150); JButton sin = new JButton("sin"); add(sin); sin.addActionListener(new bListener()); sin.setLayout(new GridLayout(1,6)); setSize(100,150); JButton tan= new JButton("tan"); add(tan); tan.addActionListener(new bListener()); tan.setLayout(new GridLayout(1,7)); setSize(100,150); JButton arcsin = new JButton("arc sin"); add(arcsin); arcsin.addActionListener(new bListener()); arcsin.setLayout(new GridLayout(1,8)); setSize(100,150); JButton arccos = new JButton("arc cos"); add(arccos); arccos.addActionListener(new bListener()); arccos.setLayout(new GridLayout(1,9)); setSize(100,150); JButton arctan = new JButton("arc tan"); add(arctan); arctan.addActionListener(new bListener()); arctan.setLayout(new GridLayout(2,0)); setSize(100,150); JButton enter = new JButton("Enter"); add(enter); enter.addActionListener(new EnterListener()); enter.setLayout(new GridLayout(2,0)); setSize(100,150); JButton deleteB = new JButton("C"); add(deleteB); deleteB.addActionListener(new bListener()); deleteB.setLayout(new GridLayout(2,0)); this.setDefaultCloseOperation(EXIT_ON_CLOSE); //User Interface code ends here } class bListener implements ActionListener { public void actionPerformed(ActionEvent e) { JButton temp = (JButton)e.getSource(); String btext = temp.getText(); String tftext = textField1.getText(); if(btext.equals("C")) textField1.setText(""); else textField1.setText(tftext + btext); } } private class EnterListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { String temp = e.getActionCommand(); String previousOperation = ""; Double result = null; if(temp.equals("Enter")){ String text = textField1.getText(); int marker = 0;//marks the line where the splitting should occur. double r = Double.NaN; for(int i=0;iRelated Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.