www.webdeveloper.com
Results 1 to 2 of 2

Thread: getSource()

Hybrid View

  1. #1
    Join Date
    Oct 2004
    Location
    Behind you
    Posts
    32

    getSource()

    Alright, i thought i had figured out how i could track the source of a click through the getSource() method, but when i do this:

    if(knop1)e.getSource()) //knop1 means button1
    {
    bla bla bla bla bla

    the usual
    }

    alright, new error ^^

    it says it can't find knop1

    I'll post my code again

    Code:
    //THE VIEW
    import javax.swing.Box;
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JButton;
    import javax.swing.JTextField;
    import javax.swing.JLabel;
    import javax.swing.BoxLayout;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.event.ActionListener;
    
    /*
     * Created on Feb 23, 2005
     * @author R. Knijntje
     *
     *
     *
     * This code was designed by R. knijnenburg
     * Copyright @ R. Knijnenburg, http://entertainer.no-ip.com, Mondriaan onderwijsgroep
     */
    
    public class RekenMachineView extends JFrame
    {
    
        private JTextField invoer1, invoer2, uitkomst;
        public JButton knop1, knop2, knop3, knop4;
        
        public RekenMachineView()
        {
            init();
        }
    
        private void init()
    	{
    	    knop1 = new JButton("=");
    	    knop2 = new JButton("-");
    	    knop3 = new JButton("*");
    	    knop4 = new JButton("/");
    
    	    invoer1 = new JTextField();
    	    invoer1.setBackground(Color.BLUE);
    	    invoer1.setPreferredSize(new Dimension(150 , 30));
     
    	    invoer2 = new JTextField();
    	    invoer2.setBackground(Color.RED);
    	    invoer2.setPreferredSize(new Dimension(150 , 30));
    	    
    	    uitkomst = new JTextField("0");
    	    uitkomst.setBackground(Color.GREEN);
    	    uitkomst.setPreferredSize(new Dimension(320 , 30));
    	    uitkomst.setEditable(false);
    	    
    	    JPanel panelCenter = new JPanel();
    	    JLabel label1 = new JLabel("+");
    	    panelCenter.add(maakVerticalBox());
    	    panelCenter.add(knop1);
    	    panelCenter.add(knop2);
    	    panelCenter.add(knop3);
    	    panelCenter.add(knop4);
    
    	    JPanel panelNoord = new JPanel();
    	    panelNoord.add(invoer1);
    	    panelNoord.add(label1);
    	    panelNoord.add(invoer2);
    	    	    
    	    JPanel panelZuid = new JPanel();
    	    panelZuid.add(uitkomst);
    
    	    getContentPane().add(panelNoord,BorderLayout.NORTH);
    	    getContentPane().add(panelZuid,BorderLayout.SOUTH);
    	    getContentPane().add(panelCenter,BorderLayout.CENTER);
    
    	    setTitle("Rekenmachine");
    	    setIconImage(new ImageIcon("icon.jpg").getImage());
    	    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	    pack();
    	    setLocation(300,175);
    	    //setSize(350, 175);
    	    setVisible(true);
    	}
        
        public static Box maakVerticalBox()
        {
            Box knopBox = new Box(BoxLayout.Y_AXIS);
            return knopBox;
        }
        
        public void setUitkomst(String uitkomst)
        {
        	this.uitkomst.setText(uitkomst);
        }
        
        public String geefInvoer1()
        {
            String waarde1 = invoer1.getText();
            return waarde1;
        }
         
        public String geefInvoer2()
        {
            String waarde2 = invoer2.getText();
            return waarde2;
        }
        
        public void toonResultaat(String uitkomst)
        {
            this.uitkomst.setText(uitkomst);
        }
        
        public void voegOptelLuisteraarToe(ActionListener e)
        {
            knop1.addActionListener(e);
            knop2.addActionListener(e);
            knop3.addActionListener(e);
            knop4.addActionListener(e);	
        }
    }
    
    --------------------------------------------------------------------------
    //THE STARTER
    
    import javax.swing.JFrame;
    
    /*
     * Created on Feb 23, 2005
     * @author R. Knijntje
     *
     *
     *
     * This code was designed by R. knijnenburg
     * Copyright @ R. Knijnenburg, http://entertainer.no-ip.com, Mondriaan onderwijsgroep
     */
    
    public class RekenMachineStarter 
    {
        public static void main(String[] args) 
        {
            JFrame.setDefaultLookAndFeelDecorated(true);
            RekenMachineView mijnView = new RekenMachineView();
            RekenMachineModel mijnModel = new RekenMachineModel();
            RekenMachineValidator mijnValidator = new RekenMachineValidator();
            
    		RekenMachineLuisteraar e = new RekenMachineLuisteraar(mijnModel, mijnView);
    
    		mijnView.voegOptelLuisteraarToe(e);
        }
    }
    
    -------------------------------------------------------------------------
    // THE LISTENER
    import java.awt.event.*;
    
    /*
    /*
     * Created on Feb 23, 2005
     * @author R. Knijntje
     *
     *
     *
     * This code was designed by R. knijnenburg
     * Copyright @ R. Knijnenburg, http://entertainer.no-ip.com, Mondriaan onderwijsgroep
     */
    
    public class RekenMachineLuisteraar implements ActionListener
    {
        
    	private RekenMachineModel m;
    	private RekenMachineView v;
    	private RekenMachineValidator rmv;
    	
    	public RekenMachineLuisteraar(RekenMachineModel m , RekenMachineView v)
        {
        	this.m = m;
            this.v = v;
            
            rmv = new RekenMachineValidator();
        }
    	
    	public void actionPerformed(ActionEvent e)
        {
            String stringGetal1, stringGetal2;
        	int intGetal1, intGetal2;;
            
        	stringGetal1 = v.geefInvoer1();  	
        	rmv.setInvoer(stringGetal1);
      
        	if(rmv.isCorrect())
           	{   
        	    if((knop1)e.getSource())
        	    {
    	       		intGetal1 = Integer.parseInt(stringGetal1);   		
    	       		
    	       		stringGetal2 = v.geefInvoer2();
    	       		rmv.setInvoer(stringGetal2);
    	                        
    	            if(rmv.isCorrect())
    	           	{   
    	            	intGetal2 = Integer.parseInt(stringGetal2); 
    	           		m.setGetal1(intGetal1);
    	           		m.setGetal2(intGetal2);
    	           		v.toonResultaat(Integer.toString(m.geefOptelling()));
    	            }
        	    }
        	    
            	if(rmv.isCorrect())
               	{   
            	    if((knop2)e.getSource())
            	    {
        	       		intGetal1 = Integer.parseInt(stringGetal1);   		
        	       		
        	       		stringGetal2 = v.geefInvoer2();
        	       		rmv.setInvoer(stringGetal2);
        	                        
        	            if(rmv.isCorrect())
        	           	{   
        	            	intGetal2 = Integer.parseInt(stringGetal2); 
        	           		m.setGetal1(intGetal1);
        	           		m.setGetal2(intGetal2);
        	           		v.toonResultaat(Integer.toString(m.geefAftrekking()));
        	            }
            	    }
    
               	else
               	{
               		v.toonResultaat(rmv.toString());
               	}
            }
           	else
           	{
           		v.toonResultaat(rmv.toString());
           	}
    
        }
    
     /*   
    	class aftrekScenario implements ActionListener
    	{      
        
    	    public void actionPerformed(ActionEvent a)
    	    {
    	        String stringGetal1, stringGetal2;
    	        int intGetal1, intGetal2;
    	        
    	        stringGetal1 = v.geefInvoer1();  	
    	        rmv.setInvoer(stringGetal1);
        	
    	        if(rmv.isCorrect()
    	        {   			        
    	        	if(knop2.isPressed == true)
    	        		{
    		            intGetal1 = Integer.parseInt(stringGetal1);   		
    	       		
    		            stringGetal2 = v.geefInvoer2();
    		            rmv.setInvoer(stringGetal2);
    		            
    		            if(rmv.isCorrect())
    		            {   
    		                intGetal2 = Integer.parseInt(stringGetal2); 
    		                m.setGetal1(intGetal1);
    		                m.setGetal2(intGetal2);
    		                v.toonResultaat(Integer.toString(m.geefAftrekking()));
    		            }
    		        }
                   	else
                   	{
                   		v.toonResultaat(rmv.toString());
                   	}
                }
    	        
               	else
               	{
               		v.toonResultaat(rmv.toString());
               	}
    
    	    }    
      	}
    }		
    }
    Could you guys help me, i'm starting to get depressed.....
    Last edited by Entertainer; 06-01-2005 at 03:44 AM.

  2. #2
    Join Date
    Jan 2004
    Location
    Melbourne, Australia
    Posts
    5,298
    It works a little different than that.
    Code:
    if (e.getSource typeof JButton)
    {
       // A JButton was clicked.
    }
    This will resolve to true if a JButton was clicked. You can then use something like getText() to determine which button was pressed. Or you do something like this to actually get the button.
    Code:
    JButton btnClicked = (JButton)e.getSource();
    Regards.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles