Welcome to the Java Programming Forums


The professional, friendly Java community. 21,500 members and growing!


The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.


>> REGISTER NOW TO START POSTING


Members have full access to the forums. Advertisements are removed for registered users.

Results 1 to 3 of 3

Thread: Help...so lost where and what did i do wrong?

  1. #1
    Junior Member
    Join Date
    Jul 2011
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Help...so lost where and what did i do wrong?

    Ive attached a screen shot and am hoping someone can point me in the right direction. Here is the code. Thank you in advance
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.datatransfer.*;
    import java.text.DecimalFormat;
    import javax.swing.JOptionPane;
     
    public class Calculator extends Frame implements ActionListener
    {
    	private Button keys[];
    	private Panel keypad;
    	private TextField lcd;
    	private double op1;
    	private boolean foundKey;
    	private boolean first;
    	private boolean clearText;
    	private int lastOp;
    	private DecimalFormat calcPattern;
     
    public Calculator()
    {
    	//create an instance of the menu
    	MenuBar mnuBar = new MenuBar();
    	setMenuBar(mnuBar);
     
    	//construct and populate the File menu
    	Menu mnuFile = new Menu("File", true);
    	mnuBar.add(mnuFile);
    		MenuItem mnuFileExit = new MenuItem("Exit");
    		mnuFile.add(mnuFileExit);
     
    	//construct and populate the edit menu
    	Menu mnuEdit = new Menu("Edit", true);
    	mnuBar.add(mnuEdit);
    		MenuItem mnuEditClear = new MenuItem("Clear");
    		mnuEdit.add(mnuEditClear);
    		mnuEdit.insertSeparator(1);
    		MenuItem mnuEditCopy = new MenuItem("Copy");
    		mnuEdit.add(mnuEditCopy);
    		MenuItem mnuEditPaste = new MenuItem("Paste");
    		mnuEdit.add(mnuEditPaste);
     
    	//construct and populate the About menu
    	Menu mnuAbout = new Menu("About", true);
    		mnuBar.add(mnuAbout);
    		MenuItem mnuAboutCalculator = new MenuItem("About Calculator");
    		mnuAbout.add(mnuAboutCalculator);
     
    		//add the ActionListener to each menu item
    		mnuFileExit.addActionListener(this);
    		mnuEditClear.addActionListener(this);
    		mnuEditCopy.addActionListener(this);
    		mnuEditPaste.addActionListener(this);
    		mnuAboutCalculator.addActionListener(this);
     
    		//assign an ActionCommand to each menu item
    		mnuFileExit.setActionCommand("Exit");
    		mnuEditClear.setActionCommand("Clear");
    		mnuEditCopy.setActionCommand("Copy");
    		mnuEditPaste.setActionCommand("Paste");
    		mnuAboutCalculator.setActionCommand("About");
     
    		//construct components and initialize beginning values
    		lcd = new TextField(20);
    			lcd.setEditable(false);
    		keypad = new Panel();
    		keys = new Button[20];
    		first = true;
    		op1 = 0.0;
    		clearText = true;
    		lastOp = 0;
    		calcPattern = new DecimalFormat("########.########");
     
    		//construct and assign captions to the Buttons
    		for (int i=0; i<=9; i++)
    			keys[i] = new Button(String.valueOf(i));
     
    		keys[10] = new Button("/");
    		keys[11] = new Button("*");
    		keys[12] = new Button("-");
    		keys[13] = new Button("+");
    		keys[14] = new Button("=");
    		keys[15] = new Button(".");
     
    		//set Frame and keypad layout to grid layout
    		setLayout (new BorderLayout());
    		keypad.setLayout(new GridLayout(4,4,10,10));
     
    		for (int i=7; i<=10; i++) //7, 8, 9, divide
    			keypad.add(keys[i]);
     
    		for (int i=4; i<=6; i++) //4, 5, 6
    			keypad.add(keys[i]);
     
    			keypad.add(keys[11]); //multiply
     
    			for (int i=1; i<=3; i++) // 1, 2, 3
    				keypad.add(keys[i]);
     
    			keypad.add(keys[12]);//subtract
     
    			keypad.add(keys[0]); //0 key
     
    			for (int i=15; i>=13; i--)
    				keypad.add(keys[i]); //decimal point, =, add (+) keys
     
    			for (int i=0; i<keys.length; i++)
    				keys[i].addActionListener(this);
     
    			add(lcd, BorderLayout.NORTH);
    			add(keypad, BorderLayout.CENTER);
     
    		addWindowListener(
    			new WindowAdapter()
    				{
    				public void windowClosing(WindowEvent e)
    					{
    						System.exit(0);
    				}
    			}
    	);
     
    }// end of constructor method
     
    public void actionPerformed(ActionEvent e)
    {
    	//test for menu item clicks
    	String arg = e.getActionCommand();
    	if (arg == "Exit")
    		System.exit(0);
     
    	if (arg == "Clear")
    	{
    		clearText = true;
    		first = true;
    		op1 = 0.0;
    		lcd.setText("");
    		lcd.requestFocus();
    	}
     
    	if(arg == "Copy")
    	{
    		Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
    		StringSelection contents = new StringSelection(lcd.getText());
    		cb.setContents(contents, null);
    	}
     
    	if (arg == "Paste")
    	{
    		Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
    		Transferable content = cb.getContents(this);
    		try
    		{
    			String s = (String)content.getTransferData(DataFlavor.stringFlavor);
    			lcd.setText(calcPattern.format(Double.parseDouble(s)));
    		}
    		catch (Throwable exc)
    		{
    			lcd.setText("");
    		}
    	}
     
    	if (arg == "About")
    	{
    		String message ="Calculator ver. 1.0\nOpenExhibit Software\\nCopyright 2007\nAll rights reserved";
    		JOptionPane.showMessageDialog(null,message,"About Calculator", JOptionPane.INFORMATION_MESSAGE);
    	}
     
    	//test for button clicks
    	foundKey = false;
     
    	//search for the clicked key
    	for (int i=0; i<keys.length && !foundKey; i++)
    	{
    		if(e.getSource() == keys[i])
    		{
    			foundKey = true;
    			switch(i)
    			{
    				// number and decimal point buttons
    				case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 15:
    					if(clearText)
    					{
    						lcd.setText("");
    						clearText = false;
    					}
    					lcd.setText(lcd.getText()+ keys[i].getLabel());
    					break;
     
    					//operator buttons
    					case 10: case 11: case 12: case 13: case 14:
    						clearText = true;
     
    						if(first) // first operand
    						{
    							if(lcd.getText().length()==0) op1 = 0.0;
    							else op1 = Double.parseDouble(lcd.getText());
     
    							first = false;
    							clearText = true;
    							lastOp = i; //save last operator
    						}
    						else  // second operand
    						{
    							switch(lastOp)
    							{
    								case 10: // divide button
    									op1 /= Double.parseDouble(lcd.getText());
    									break;
    								case 11: // multiply button
    									op1 *= Double.parseDouble(lcd.getText());
    									break;
    								case 12: //minus button
    									op1 -= Double.parseDouble(lcd.getText());
    									break;
    								case 13: // plus button
    									op1 += Double.parseDouble(lcd.getText());
    									break;
    							} //end of switch(lastOp)
    							lcd.setText(calcPattern.format(op1));
    							clearText = true;
     
    							if(i==14) first = true; // equal button
    							else lastOp = i; // save last operator
    						} //end else
    						break;
    					} // end of switch (i)
    				} //end of if
    			} // end of for
    		} // end of actionPerformed
     
    		public static void main(String args[])
    		{
    			//set frame properties
    			Calculator f = new Calculator();
    			f.setTitle("Calculator Application");
    			f.setBounds(200,200,300,300);
    			f.setVisible(true);
     
    			//set image properties and add to frame
    			Image icon = Toolkit.getDefaultToolkit().getImage("calcImage.gif");
    			f.setIconImage(icon);
     
    	}//end of main
    }//end of class
    Attached Images Attached Images


  2. #2
    Forum old-timer
    Join Date
    Nov 2008
    Location
    Faversham, Kent, UK
    Posts
    472
    My Mood
    Mellow
    Thanks
    4
    Thanked 58 Times in 54 Posts

    Default Re: Help...so lost where and what did i do wrong?

    The error message tells you that you tried to do something with an object that was null (uninitialized) on line 115 of the source file (inside the Calculator constructor). Check that line for a variable that hasn't been given a value.

  3. #3
    Junior Member
    Join Date
    Jul 2011
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: Help...so lost where and what did i do wrong?

    Solved...Thank You

Similar Threads

  1. Help, please. I'm lost
    By Borb in forum What's Wrong With My Code?
    Replies: 1
    Last Post: October 17th, 2010, 08:50 PM
  2. I'm lost
    By stoptheerrors in forum What's Wrong With My Code?
    Replies: 2
    Last Post: August 31st, 2010, 08:47 AM
  3. Im lost....
    By brale76578 in forum What's Wrong With My Code?
    Replies: 1
    Last Post: August 31st, 2010, 08:09 AM
  4. lost
    By nyny in forum What's Wrong With My Code?
    Replies: 2
    Last Post: May 7th, 2010, 07:32 AM
  5. Need Help! I'm completly lost!
    By DeMolay8613 in forum Java Theory & Questions
    Replies: 0
    Last Post: January 11th, 2010, 01:21 PM