2 Replies - 1094 Views - Last Post: 14 November 2012 - 04:56 AM Rate Topic: -----

#1 D3M0   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 14-November 12

Trying to get the buttons to work (Gui Calculator)

Posted 14 November 2012 - 01:02 AM

I'm relatively new to programing, and I am Trying to get all these buttons to work on my first GUI calculator, but I keep getting double digits whenever I press a single button. (i.e. I press the 1 button and 11 is displayed within the JTextField) I get no errors when I build the file, and I can't seem to find the cause.

Here is my code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class GCalc extends JFrame
{
		private JButton button1, button2, button3, button4, button5,
						button6, button7, button8, button9, button0;

		private JButton add, subtract, multiply, divide,
						clear, dot, equals;

		private JTextField display;
		private final int windW = 400, windH = 400;
		private String holder = "";
		private boolean checknum1, checknum2, checkop, dcheck, dfill;
		private double num1 , num2, finalResult, opholder;



	public GCalc()
	{
		setTitle("Calculator");
		setSize(windW,windH);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setResizable(false);


		button1 = new JButton("1");
		button2 = new JButton("2");
		button3 = new JButton("3");
		button4 = new JButton("4");
		button5 = new JButton("5");
		button6 = new JButton("6");
		button7 = new JButton("7");
		button8 = new JButton("8");
		button9 = new JButton("9");
		button0 = new JButton("0");

		add = new JButton("+");
		subtract = new JButton("-");
		multiply = new JButton("*");
		divide = new JButton("/");

		clear = new JButton("C");
		dot = new JButton(".");
		equals = new JButton("=");

		display = new JTextField("",32);
		display.setEditable(false);

		setLayout(new GridBagLayout());
		GridBagConstraints gbc = new GridBagConstraints();
		GridBagConstraints g2 = new GridBagConstraints();
		GridBagConstraints g3 = new GridBagConstraints();



		g2.fill = GridBagConstraints.HORIZONTAL;
		g2.gridx = 0;
		g2.gridy = 0;
		g2.ipadx = 10;
		g2.ipady = 20;
		g2.gridwidth = 6;
		add(display, g2);


		gbc.ipadx = 30;
		gbc.ipady = 30;
		gbc.fill = GridBagConstraints.HORIZONTAL;
		gbc.gridx = 0;
		gbc.gridy = 1;
		add(button1, gbc);

		gbc.gridx = 1;
		gbc.gridy = 1;
		add(button2, gbc);

		gbc.gridx = 2;
		gbc.gridy = 1;
		add(button3, gbc);

		gbc.gridx = 0;
		gbc.gridy = 2;
		add(button4, gbc);

		gbc.gridx = 1;
		gbc.gridy = 2;
		add(button5, gbc);

		gbc.gridx = 2;
		gbc.gridy = 2;
		add(button6, gbc);

		gbc.gridx = 0;
		gbc.gridy = 3;
		add(button7, gbc);

		gbc.gridx = 1;
		gbc.gridy = 3;
		add(button8, gbc);

		gbc.gridx = 2;
		gbc.gridy = 3;
		add(button9, gbc);

		gbc.gridx = 1;
		gbc.gridy = 4;
		add(button0, gbc);

		gbc.gridx = 4;
		gbc.gridy = 1;
		add(add, gbc);

		gbc.gridx = 5;
		gbc.gridy = 1;
		add(subtract, gbc);


		gbc.gridx = 4;
		gbc.gridy = 2;
		add(multiply, gbc);


		gbc.gridx = 5;
		gbc.gridy = 2;
		add(divide, gbc);


		gbc.gridx = 4;
		gbc.gridy = 3;
		add(dot, gbc);

		g3.fill = GridBagConstraints.BOTH;
		g3.gridx = 5;
		g3.gridy = 3;
		g3.gridheight = 4;
		add(equals, g3);

		gbc.gridx = 4;
		gbc.gridy = 4;
		add(clear, gbc);

		button1.addActionListener(new bttnlisten());
		button2.addActionListener(new bttnlisten());
		button3.addActionListener(new bttnlisten());
		button4.addActionListener(new bttnlisten());
		button5.addActionListener(new bttnlisten());
		button6.addActionListener(new bttnlisten());
		button7.addActionListener(new bttnlisten());
		button8.addActionListener(new bttnlisten());
		button9.addActionListener(new bttnlisten());
		button0.addActionListener(new bttnlisten());

		dot.addActionListener(new bttnlisten());
		clear.addActionListener(new bttnlisten());
		add.addActionListener(new bttnlisten());
		subtract.addActionListener(new bttnlisten());
		multiply.addActionListener(new bttnlisten());
		divide.addActionListener(new bttnlisten());
		equals.addActionListener(new bttnlisten());

		checknum1 = false;
		checknum2 = false;
		checkop = false;
		dcheck = false;
		dfill = false;

		setVisible(true);
	}

	private class bttnlisten implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{


			// events for button1, num1
			if(e.getSource() == button1 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 1;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button1 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 1;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button1 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.1;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button1 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.1;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button1 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "1";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}


			// events for button2, num1
			if(e.getSource() == button2 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 2;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			else if(e.getSource() == button2 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 2;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button2 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.2;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button2 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.2;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button2 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "2";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}

			// events for button3, num1
			if(e.getSource() == button3 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 3;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button3 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 3;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button3 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.3;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button3 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.3;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button3 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "3";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}

			// events for button4, num1
			if(e.getSource() == button4 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 4;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button4 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 4;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button4 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.4;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button4 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.4;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button4 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "4";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}

			// events for button5, num1
			if(e.getSource() == button5 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 5;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button5 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 5;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button5 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.5;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button5 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.5;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button5 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "5";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}

			// events for button6, num1
			if(e.getSource() == button6 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 6;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button6 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 6;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button6 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.6;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button6 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.6;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button6 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "6";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}

			// events for button7, num1
			if(e.getSource() == button7 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 7;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button7 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 7;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button7 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.7;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button7 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.7;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button7 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "7";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}

			// events for button8, num1
			if(e.getSource() == button8 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 8;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button8 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 8;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button8 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.8;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button8 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.8;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button8 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "8";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}

			// events for button9, num1
			if(e.getSource() == button9 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 9;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button9 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 9;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button9 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.9;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button9 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.9;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button9 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "9";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}

			// events for button0, num1
			if(e.getSource() == button0 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = 0;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button0 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 0;
				holder = Double.toString(num1);
				display.setText(holder);
			}

			if(e.getSource() == button0 && checknum1 ==false && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{
				num1 = 0.0;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
				dfill = true;
			}

			if(e.getSource() == button0 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == false)
			{

				num1 += 0.0;
				holder = Double.toString(num1);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button0 && checknum1 == true && checkop == false && checknum2 == false && dcheck == true && dfill == true)
			{
				holder = Double.toString(num1) + "0";
				num1 = Double.parseDouble(holder);
				holder = Double.toString(num1);// for test
				display.setText(holder);
			}





			// events for button1, num2
			if(e.getSource() == button1 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 1;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button1 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 1;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button1 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.1;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button1 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.1;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button1 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "1";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}

			// events for button2, num2
			if(e.getSource() == button2 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 2;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button2 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 2;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button2 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.2;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button2 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.2;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button2 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "2";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}

			// events for button3, num2
			if(e.getSource() == button3 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 3;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button3 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 3;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button3 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.3;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button3 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.3;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button3 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "3";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}

			// events for button4, num2
			if(e.getSource() == button4 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 4;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button4 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 4;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button4 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.4;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button4 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.4;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button4 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "4";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}

			// events for button5, num2
			if(e.getSource() == button5 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 5;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button5 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 5;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button5 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.5;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button5 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.5;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button5 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "5";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}

			// events for button6, num2
			if(e.getSource() == button6 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 6;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button6 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 6;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button6 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.6;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button6 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.6;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button6 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "6";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}


			// events for button7, num2
			if(e.getSource() == button7 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 7;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button7 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 7;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button7 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.7;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button7 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.7;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button7 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "7";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}


			// events for button8, num2
			if(e.getSource() == button8 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 8;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button8 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 8;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button8 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.8;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button8 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.8;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button8 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "8";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}



			// events for button9, num2
			if(e.getSource() == button3 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 9;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button9 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 9;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button9 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.9;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button9 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.9;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button9 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "9";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}

			// events for button0, num2
			if(e.getSource() == button0 && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 0;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
			}

			if(e.getSource() == button0 && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 = num2 * 10 + 0;
				holder = Double.toString(num2);
				display.setText(holder);
			}

			if(e.getSource() == button0 && checknum1 ==true && checkop == true && checknum2 == false && dcheck == true && dfill == false)
			{
				num2 = 0.0;
				holder = Double.toString(num2);
				display.setText(holder);
				checknum2 = true;
				dfill = true;
			}

			if(e.getSource() == button0 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == false)
			{

				num2 += 0.0;
				holder = Double.toString(num2);
				display.setText(holder);
				dfill = true;
			}

			if(e.getSource() == button0 && checknum1 == true && checkop == true && checknum2 == true && dcheck == true && dfill == true)
			{
				holder = Double.toString(num2) + "0";
				num2 = Double.parseDouble(holder);
				display.setText(holder);
			}

			//event for dot
			if(e.getSource() == dot && checknum1 == false && dcheck == false)
			{
				num1 = 0.0;
				dcheck = true;
			}
			if(e.getSource() == dot && checknum1 == true && checkop== false && checknum2 == false && dcheck == false)
			{
				num1 += 0.0;
				dcheck = true;
			}
			if(e.getSource() == dot && checknum1 == true && checkop == true && checknum2 == false && dcheck == false)
			{
				num2 = 0.0;
				dcheck = true;
			}
			if(e.getSource() == dot && checknum1 == true && checkop == true && checknum2 == true && dcheck == false)
			{
				num2 += 0.0;
				dcheck = true;
			}




			// event for first operators
			if(e.getSource() == add && checkop == false)
			{
				checkop = true;
				opholder = 1;
				dcheck = false;
				dfill = false;
			}
			if(e.getSource() == subtract && checkop == false)
			{
				checkop = true;
				opholder = 2;
				dcheck = false;
				dfill = false;
			}
			if(e.getSource() == multiply && checkop == false)
			{
				checkop = true;
				opholder = 3;
				dcheck = false;
				dfill = false;
			}
			if(e.getSource() == divide && checkop == false)
			{
				checkop = true;
				opholder = 4;
				dcheck = false;
				dfill = false;
			}





			//event for extra operators
			if(e.getSource() == add && checkop == true && checknum2 == true)
			{
				if(opholder == 1)
				{
					finalResult = num1 + num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 1;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 2)
				{
					finalResult = num1 - num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 1;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 3)
				{
					finalResult = num1 * num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 1;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 4)
				{
					finalResult = num1 / num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 1;
					dcheck = false;
					dfill = false;
				}
			}
			if(e.getSource() == subtract && checkop == true && checknum2 == true)
			{
				if(opholder == 1)
				{
					finalResult = num1 + num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 2;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 2)
				{
					finalResult = num1 - num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 2;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 3)
				{
					finalResult = num1 * num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 2;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 4)
				{
					finalResult = num1 / num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 2;
					dcheck = false;
					dfill = false;
				}
			}
			if(e.getSource() == multiply && checkop == true && checknum2 == true)
			{
				if(opholder == 1)
				{
					finalResult = num1 + num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 3;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 2)
				{
					finalResult = num1 - num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 3;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 3)
				{
					finalResult = num1 * num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 3;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 4)
				{
					finalResult = num1 / num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 3;
					dcheck = false;
					dfill = false;
				}
			}
			if(e.getSource() == divide && checkop == true && checknum2 == true)
			{
				if(opholder == 1)
				{
					finalResult = num1 + num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 4;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 2)
				{
					finalResult = num1 - num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 4;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 3)
				{
					finalResult = num1 * num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 4;
					dcheck = false;
					dfill = false;
				}
				if(opholder == 4)
				{
					finalResult = num1 / num2;
					holder = Double.toString(finalResult);
					display.setText(holder);
					num1 = finalResult;
					checknum2 = false;
					opholder = 4;
					dcheck = false;
					dfill = false;
				}
			}





			// event for equals
			if(e.getSource() == equals && checknum1 == true && checkop == true && checknum2 == true && opholder == 1)
			{
				finalResult = num1 + num2;
				holder = Double.toString(finalResult);
				display.setText(holder);
				num1 = finalResult;
				checknum2 = false;
				checkop = false;

			}
			if(e.getSource() == equals && checknum1 == true && checkop == true && checknum2 == true && opholder == 2)
			{
				finalResult = num1 - num2;
				holder = Double.toString(finalResult);
				display.setText(holder);
				num1 = finalResult;
				checknum2 = false;
				checkop = false;
			}
			if(e.getSource() == equals && checknum1 == true && checkop == true && checknum2 == true && opholder == 3)
			{
				finalResult = num1 * num2;
				holder = Double.toString(finalResult);
				display.setText(holder);
				num1 = finalResult;
				checknum2 = false;
				checkop = false;
			}
			if(e.getSource() == equals && checknum1 == true && checkop == true && checknum2 == true && opholder == 4)
			{
				finalResult = num1 / num2;
				holder = Double.toString(finalResult);
				display.setText(holder);
				num1 = finalResult;
				checknum2 = false;
				checkop = false;
			}

			// event for clear
			if(e.getSource() == clear)
			{
				checknum1 = false;
				checknum2 = false;
				checkop = false;
				dcheck = false;
				dfill = false;
				num1 = 0;
				num2 = 0;
				opholder = 0;
				holder = "";
				display.setText(holder);
			}

		}
	}

	public static void main (String[] args)
	{
		new GCalc();
	}

}


Is This A Good Question/Topic? 0
  • +

Replies To: Trying to get the buttons to work (Gui Calculator)

#2 JHol   User is offline

  • D.I.C Head

Reputation: 16
  • View blog
  • Posts: 50
  • Joined: 10-February 11

Re: Trying to get the buttons to work (Gui Calculator)

Posted 14 November 2012 - 02:41 AM

in your actionlistener
several of the conditions you are testing for are true.
why do you need all this booleans? could it be made simpler?

anyway: you set checknum to be true in your first if clouse, causing the second if to be executed

			

	if(e.getSource() == button1 && checknum1 == false && checkop == false && checknum2 == false && dcheck == false)
			{
		tews++;
		System.out.println(String.valueOf(tews));
		
				num1 = 1;
				holder = Double.toString(num1);
				display.setText(holder);
				checknum1 = true;
			}

			if(e.getSource() == button1 && checknum1 == true && checkop == false && checknum2 == false && dcheck == false)
			{
				num1 = num1 * 10 + 1;
				holder = Double.toString(num1);
				display.setText(holder);
			}


Was This Post Helpful? 1
  • +
  • -

#3 pbl   User is offline

  • There is nothing you can't do with a JTable
  • member icon

Reputation: 8381
  • View blog
  • Posts: 31,956
  • Joined: 06-March 08

Re: Trying to get the buttons to work (Gui Calculator)

Posted 14 November 2012 - 04:56 AM

Instead of checking for which Button better to

void actionPerformed(ActionEvent e) {
    Object o = e.getSource();
    if(o instanceof JButton) {
        JButton b = (JButton) o;
        String str = b.getText();
        .. here str will be "+","-","1","2","3",... depending on the button clicked
        ...
        return;
     }
}


Was This Post Helpful? 0
  • +
  • -

Page 1 of 1