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 14 of 14

Thread: GUI button not linking back to code

  1. #1
    Junior Member
    Join Date
    Jan 2014
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default GUI button not linking back to code

    Hello, I have started coding recently and been working on a simple java timer. My problem is that the button does not show any response even though an action has been done via actionlistener.
    Example: When I press the "Start Timing" button, it should start timing and output the counter to Static Timer but instead of doing that, it does nothing.

    The important bits are under Timer code and Button Start Timing
    Is their something that I'm missing?

    //--- All imports have been handled --- 
    public class GUI {
    	double counter = 1;
    	double inputA = 1;
    	int delay = 1000;
    	Timer timer = new Timer(delay, null);
     
    //--- Timer Code ---	
     
    	public void timer(){
    	    timer = new Timer(delay, new ActionListener(){
    	        public void actionPerformed(ActionEvent e) {
    	            if (counter <= inputA) {
    	            	txtEnterHowLong.setEditable(true);
    	                timer.stop();
    	            } else {
    	            	inputA = Double.parseDouble(txtEnterHowLong.getText());
    	            	txtEnterHowLong.setEditable(false);
    	            	System.out.println(counter);
    	            	counter++;
    	            	txtCounter.setText(counter + ""); 
    	            }
    	        }
    	    });
    	}
     
    //-------------------
     
    	private JFrame frmTimer;
    	private JTextField txtEnterHowLong;
     
    //Launch the Application
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					GUI window = new GUI();
    					window.frmTimer.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    //--- Create the Application ---
     
    	private JTextField txtCounter;
    	private JPanel panel;
    	private JTextField txtCurrentTimer;
    	public GUI() {
    		initialize();
    	}
     
    //--- Initialize contents of frame ---
     
    	private void initialize() {
    		frmTimer = new JFrame();
    		frmTimer.setTitle("Timer");
    		frmTimer.setBounds(100, 100, 350, 200);
    		frmTimer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frmTimer.getContentPane().setLayout(null);
     
    //--- Button "Start Timing" created ---
     
    		JButton btnStartTiming = new JButton("Start Timing");
    	    btnStartTiming.addActionListener(new ActionListener(){
    	        public void actionPerformed(ActionEvent e) {
    	        inputA = Double.parseDouble(txtEnterHowLong.getText());
    	        timer.start();
    	        }
    	    });
    		btnStartTiming.setRequestFocusEnabled(false);
     
    		panel = new JPanel();
    		panel.setBounds(10, 11, 200, 22);
    		frmTimer.getContentPane().add(panel);
    		panel.setLayout(null);
     
    //--- Input field created ---
     
    		txtEnterHowLong = new JTextField();
    		txtEnterHowLong.setEditable(true);
    		txtEnterHowLong.setBounds(0, 0, 200, 22);
    		panel.add(txtEnterHowLong);
    		txtEnterHowLong.setToolTipText("Time in Seconds");
    		btnStartTiming.setBounds(220, 10, 110, 23);
    		frmTimer.getContentPane().add(btnStartTiming);
     
    //--- Button "Stop Timing" created ---
     
    		JButton btnStopTiming = new JButton("Stop Timing");
    		btnStopTiming.setBounds(220, 40, 110, 23);
    		frmTimer.getContentPane().add(btnStopTiming);
     
    //--- Radio button "Play sound" created ---
     
    		JRadioButton rdbtnPlaySoundWhen = new JRadioButton("Play sound when time is up?");
    		rdbtnPlaySoundWhen.setBounds(10, 40, 188, 22);
    		frmTimer.getContentPane().add(rdbtnPlaySoundWhen);
     
    //--- Static counter created ---
     
    		txtCounter = new JTextField();
    		txtCounter.setText("Static Timer");
    		txtCounter.setToolTipText("Shows total time that has passed.");
    		txtCounter.setBounds(110, 69, 100, 20);
    		frmTimer.getContentPane().add(txtCounter);
    		txtCounter.setColumns(10);
     
    //--- Current timer created ---
     
    		txtCurrentTimer = new JTextField();
    		txtCurrentTimer.setToolTipText("Shows current time that has passed.");
    		txtCurrentTimer.setText("Current Timer");
    		txtCurrentTimer.setBounds(10, 69, 86, 20);
    		frmTimer.getContentPane().add(txtCurrentTimer);
    		txtCurrentTimer.setColumns(10);
     
    //------------------------------
     
    		JMenuBar menuBar = new JMenuBar();
    		frmTimer.setJMenuBar(menuBar);
     
    		JMenu mnView = new JMenu("View");
    		menuBar.add(mnView);
     
    		JMenu mnAbout = new JMenu("About");
    		menuBar.add(mnAbout);
    	}
    }


  2. #2
    Member andbin's Avatar
    Join Date
    Dec 2013
    Location
    Italy
    Posts
    443
    Thanks
    4
    Thanked 122 Times in 114 Posts

    Default Re: GUI button not linking back to code

    Quote Originally Posted by StaticHS View Post
    Hello, I have started coding recently and been working on a simple java timer. My problem is that the button does not show any response even though an action has been done via actionlistener.
    Example: When I press the "Start Timing" button, it should start timing and output the counter to Static Timer but instead of doing that, it does nothing.
    I have not analyzed all the code (there can be other bad things) but one thing is clear: your timer() method is never invoked. So remains the new Timer(delay, null) object that does nothing.
    Andrea, www.andbin.netSCJP 5 (91%) – SCWCD 5 (94%)

    Useful links for Java beginnersMy new project Java Examples on Google Code

  3. #3
    Junior Member
    Join Date
    Jan 2014
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: GUI button not linking back to code

    Quote Originally Posted by andbin View Post
    I have not analyzed all the code (there can be other bad things) but one thing is clear: your timer() method is never invoked. So remains the new Timer(delay, null) object that does nothing.
    As soon as I think I've fixed it, the whole code dies on me. It requests me to put in some } at the end to fix syntax errors and all of the code basically becomes corrupt and dependent on other things (not imports).

    Updated broken code:
    public class GUI {
    	double counter = 1;
    	double inputA = 5;
    	int delay = 1000;
     
    //--- Timer Code ---	
     
    	public void timer(){
    		Timer timer = new Timer(delay, null);
    	}
    		 ActionListener counting = new ActionListener() {
    		      public void actionPerformed(ActionEvent evt) {
    		            if (counter <= inputA) {
    		                timer.stop();
    		            } else {
    		            	System.out.println(counter);
    		            	counter++;
    		            	txtCounter.setText(counter + ""); 
    		            }
    	}
     
    //-------------------
     
    	private JFrame frmTimer;
    	private JTextField txtEnterHowLong;
     
    //Launch the Application
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					GUI window = new GUI();
    					window.frmTimer.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    //--- Create the Application ---
     
    	private JTextField txtCounter;
    	private JPanel panel;
    	private JTextField txtCurrentTimer;
    	private final Checkbox checkbox = new Checkbox("Play sound when time is up?");
    	public GUI() {
    		initialize();
    	}
     
    //--- Initialize contents of frame ---
     
    	public void initialize() {
    		frmTimer = new JFrame();
    		frmTimer.setTitle("Timer");
    		frmTimer.setBounds(100, 100, 350, 160);
    		frmTimer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frmTimer.getContentPane().setLayout(null);
     
    //--- Button "Start Timing" created ---
     
    		JButton btnStartTiming = new JButton("Start Timing");
    	    btnStartTiming.addActionListener(new ActionListener(){
    	        public void actionPerformed(ActionEvent counting) {
    	        	new Timer(delay, counting).start();
     
    	        }
    	    });
    		btnStartTiming.setRequestFocusEnabled(false);
     
    		panel = new JPanel();
    		panel.setBounds(10, 11, 200, 22);
    		frmTimer.getContentPane().add(panel);
    		panel.setLayout(null);
     
    //--- Input field created ---
     
    		txtEnterHowLong = new JTextField();
    		txtEnterHowLong.setEditable(true);
    		txtEnterHowLong.setBounds(0, 0, 200, 22);
    		panel.add(txtEnterHowLong);
    		txtEnterHowLong.setToolTipText("Time in Seconds");
    		btnStartTiming.setBounds(220, 10, 110, 23);
    		frmTimer.getContentPane().add(btnStartTiming);
     
    //--- Button "Stop Timing" created ---
     
    		JButton btnStopTiming = new JButton("Stop Timing");
    		btnStopTiming.setBounds(220, 40, 110, 23);
    		frmTimer.getContentPane().add(btnStopTiming);
     
    //--- Static counter created ---
     
    		txtCounter = new JTextField();
    		txtCounter.setText("Static Timer");
    		txtCounter.setToolTipText("Shows total time that has passed.");
    		txtCounter.setBounds(108, 67, 100, 20);
    		frmTimer.getContentPane().add(txtCounter);
    		txtCounter.setColumns(10);
     
    //--- Current timer created ---
     
    		txtCurrentTimer = new JTextField();
    		txtCurrentTimer.setToolTipText("Shows current time that has passed.");
    		txtCurrentTimer.setText("Current Timer");
    		txtCurrentTimer.setBounds(10, 67, 86, 20);
    		frmTimer.getContentPane().add(txtCurrentTimer);
    		txtCurrentTimer.setColumns(10);
     
     
    //--- Checkbox ---		
     
    		checkbox.setFont(new Font("Dialog", Font.BOLD, 12));
    		checkbox.setBounds(10, 32, 200, 31);
    		frmTimer.getContentPane().add(checkbox);
    				checkbox.addItemListener(new ItemListener() {
    			public void itemStateChanged(ItemEvent arg0) {
    				 if (counter == inputA) {
    					 sound.play("test.wav");
    		            } else {
                         //Do nothing
    		            }
    			}
    		});
     
    //------------------------------
     
    		JMenuBar menuBar = new JMenuBar();
    		frmTimer.setJMenuBar(menuBar);
     
    		JMenu mnView = new JMenu("View");
    		menuBar.add(mnView);
     
    		JMenu mnAbout = new JMenu("About");
    		menuBar.add(mnAbout);
    	}
    		 };
    }

    The code just goes AWOL after this point. No automatic eclipse fixes will help me fix the errors that keep popping up consistently.
    If I try to run the code with errors it gives me: Error: Main method not found in class GUI, please define the main method as:
    public static void main(String[] args)

  4. #4
    Member andbin's Avatar
    Join Date
    Dec 2013
    Location
    Italy
    Posts
    443
    Thanks
    4
    Thanked 122 Times in 114 Posts

    Default Re: GUI button not linking back to code

    Quote Originally Posted by StaticHS View Post
    The code just goes AWOL after this point. No automatic eclipse fixes will help me fix the errors that keep popping up consistently.
    If I try to run the code with errors it gives me: Error: Main method not found in class GUI, please define the main method as:
    public static void main(String[] args)
    Just after the timer() method there is ActionListener counting = .... that the compiler interprets as an instance variable. But this declaration doesn't close correctly. And I suppose it's not what you wanted.

    I see also a:
    new Timer(delay, counting).start();

    where counting is the ActionEvent, which is wrong.
    Andrea, www.andbin.netSCJP 5 (91%) – SCWCD 5 (94%)

    Useful links for Java beginnersMy new project Java Examples on Google Code

  5. #5
    Junior Member
    Join Date
    Jan 2014
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: GUI button not linking back to code

    Quote Originally Posted by andbin View Post
    Just after the timer() method there is ActionListener counting = .... that the compiler interprets as an instance variable. But this declaration doesn't close correctly. And I suppose it's not what you wanted.

    I see also a:
    new Timer(delay, counting).start();

    where counting is the ActionEvent, which is wrong.
    I think i have figured out the problem,
    //--- Button "Start Timing" created ---
     
    		JButton btnStartTiming = new JButton("Start Timing");
    	    btnStartTiming.addActionListener(new ActionListener(){
    	        public void actionPerformed(ActionEvent e) {
    	        inputA = Double.parseDouble(txtEnterHowLong.getText());
    	        timer.start();
    	        }
    	    });
    		btnStartTiming.setRequestFocusEnabled(false);
     
    		panel = new JPanel();
    		panel.setBounds(10, 11, 200, 22);
    		frmTimer.getContentPane().add(panel);
    		panel.setLayout(null);
    the timer.start does not reach my code that the timer should fulfill and instead runs this code
    Timer timer = new Timer(delay, ActionEvent);
    when it should run this:
            public void timer(ActionListener ActionEvent){	
    		timer = new Timer(delay, new ActionListener(){
    	        public void actionPerformed(ActionEvent e) {
    	            if (counter <= inputA) {
     
    	            } else {
    	            	System.out.println(counter);
    	            	counter++;
    	            	txtCounter.setText(counter + ""); 
    	            }
    	        }
    	    });
    	}
    Is their a way to organize the code so that the code above will be available to the whole program instead of just that part?

    --- Update ---

    I think I have slimmed down the code just to this part now:
    //--- Timer Code ---	
    	Timer timer = new Timer(delay, ActionEvent);
     
    	public void timer(){	
    		timer = new Timer(delay, new ActionListener(){
    	        public void actionPerformed(ActionEvent e) {
    	        	inputA = Double.parseDouble(txtEnterHowLong.getText());
    	            if (counter >= inputA) {
     
    	            } else {
    	            	System.out.println(counter);
    	            	counter++;
    	            	txtCounter.setText(counter + ""); 
    	            }
    	        }
    	    });
    	    btnStartTiming.addActionListener(new ActionListener(){
    	        public void actionPerformed(ActionEvent e) {
    	            timer.start();
    	        }
    	    });}
    but it still will not link to the button when I click on it.

  6. #6
    Super Moderator
    Join Date
    Jun 2013
    Location
    So. Maryland, USA
    Posts
    5,517
    My Mood
    Mellow
    Thanks
    215
    Thanked 698 Times in 680 Posts

    Default Re: GUI button not linking back to code

    This is the code that creates the JButton and adds an action listener to it:

    JButton btnStartTiming = new JButton("Start Timing");
     
    btnStartTiming.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            inputA = Double.parseDouble(txtEnterHowLong.getText());
            timer.start();
        }
    } );
    If you want the button presses to do something else or to execute the other code you've posted, then put that code into the actionPerformed() method above or call that code as a method from the actionPerformed() method.

  7. #7
    Junior Member
    Join Date
    Jan 2014
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: GUI button not linking back to code

    Quote Originally Posted by GregBrannon View Post
    This is the code that creates the JButton and adds an action listener to it:

    JButton btnStartTiming = new JButton("Start Timing");
     
    btnStartTiming.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            inputA = Double.parseDouble(txtEnterHowLong.getText());
            timer.start();
        }
    } );
    If you want the button presses to do something else or to execute the other code you've posted, then put that code into the actionPerformed() method above or call that code as a method from the actionPerformed() method.
    This is the code that I came up with,
    		JButton btnStartTiming = new JButton("Start Timing");
    		btnStartTiming.addActionListener(new ActionListener(){
    			Timer timer = new Timer(delay, ActionEvent);
    		    public void actionPerformed(ActionEvent e)
    		    {
                    try{
                        inputA = Double.parseDouble(txtEnterHowLong.getText());
                       }catch(NumberFormatException ex){
                       }
    		        while (counter <= inputA) {
    		        	timer.start();		        	
    		        	System.out.println(counter);
    		        	txtCounter.setText(counter + ""); 
    		        	counter++;
     
    		        }
    		    }
    		} );
    It still doesn't have a delay though. Delay is set to 1000.

  8. #8
    Super Moderator
    Join Date
    Jun 2013
    Location
    So. Maryland, USA
    Posts
    5,517
    My Mood
    Mellow
    Thanks
    215
    Thanked 698 Times in 680 Posts

    Default Re: GUI button not linking back to code

    Creating a new Timer each time the button is clicked is probably unnecessary, but I have no idea what this code is supposed to do. Have you described that anywhere? It seems that you're not only coding without knowing what to code - that's okay and why you've come here - but without knowing what the code is supposed to do. Those two put together usually result in a mess, and at that I think you've been highly successful.

    To help get you back on track, please describe what the finished product is supposed to do. What is happening before the button is pressed, and what effect is produced by pressing the button? What is supposed to be delayed? What happens after the delay is over?

  9. #9
    Junior Member
    Join Date
    Jan 2014
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: GUI button not linking back to code

    Quote Originally Posted by GregBrannon View Post
    Creating a new Timer each time the button is clicked is probably unnecessary, but I have no idea what this code is supposed to do. Have you described that anywhere? It seems that you're not only coding without knowing what to code - that's okay and why you've come here - but without knowing what the code is supposed to do. Those two put together usually result in a mess, and at that I think you've been highly successful.

    To help get you back on track, please describe what the finished product is supposed to do. What is happening before the button is pressed, and what effect is produced by pressing the button? What is supposed to be delayed? What happens after the delay is over?
    Basically, when the button is pressed, it should delay these commands for one second
    		        	System.out.println(counter);
    		        	txtCounter.setText(counter + ""); 
    		        	counter++;
    then repeat the commands until the counter reaches the users input without freezing the GUI.

  10. #10
    Super Moderator
    Join Date
    Jun 2013
    Location
    So. Maryland, USA
    Posts
    5,517
    My Mood
    Mellow
    Thanks
    215
    Thanked 698 Times in 680 Posts

    Default Re: GUI button not linking back to code

    If an action is already occurring at 1-second intervals, what will be the apparent effect of pausing that action for 1 second? Hint: None. Please, describe it again after thinking it through. Another possibility is that you've already accomplished what you've described and just didn't realize it.

  11. #11
    Junior Member
    Join Date
    Jan 2014
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: GUI button not linking back to code

    Quote Originally Posted by GregBrannon View Post
    If an action is already occurring at 1-second intervals, what will be the apparent effect of pausing that action for 1 second? Hint: None. Please, describe it again after thinking it through. Another possibility is that you've already accomplished what you've described and just didn't realize it.
    The problem is that the delay doesn't actually occur.

  12. #12
    Junior Member
    Join Date
    Jan 2014
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: GUI button not linking back to code

    This should work but it does not delay -.-
    		JButton btnStartTiming = new JButton("Start Timing");
    		btnStartTiming.addActionListener(new ActionListener(){
    		    public void actionPerformed(ActionEvent e){		        	
    		    	Timer displayTimer = new Timer(delay, null);
                    try{
                        inputA = Double.parseDouble(txtEnterHowLong.getText());
                       }catch(NumberFormatException ex){
                       }
    		        while (counter <= inputA) {      	
    		        	displayTimer.restart();
    		        	System.out.println(counter);
    		        	txtCounter.setText(counter + ""); 
    		        	counter++;
     
    		        }
    		    }
    		} );

  13. #13
    Member andbin's Avatar
    Join Date
    Dec 2013
    Location
    Italy
    Posts
    443
    Thanks
    4
    Thanked 122 Times in 114 Posts

    Default Re: GUI button not linking back to code

    The following can serve you as a good "lesson":

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class CounterTimer {
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new CounterTimerFrame().setVisible(true);
                }
            });
        }
    }
     
    class CounterTimerFrame extends JFrame {
        private int counter;
        private JButton startButton;
        private JLabel counterLabel;
        private Timer timer;
     
        public CounterTimerFrame() {
            super("Counter Timer");
     
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            setSize(250, 200);
     
            startButton = new JButton("Start");
            counterLabel = new JLabel("Counter: ");
     
            startButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    startEvent();
                }
            });
     
            timer = new Timer(500, new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    timerEvent();
                }
            });
     
            getContentPane().add(startButton, BorderLayout.NORTH);
            getContentPane().add(counterLabel, BorderLayout.SOUTH);
        }
     
        private void startEvent() {
            counter = 1;
            timer.start();
            startButton.setEnabled(false);
        }
     
        private void timerEvent() {
            counterLabel.setText("Counter: " + counter);
     
            if (counter < 10) {    // 10 is fixed here but could be a variable
                counter++;
            } else {
                timer.stop();
                startButton.setEnabled(true);
            }
        }
    }
    Andrea, www.andbin.netSCJP 5 (91%) – SCWCD 5 (94%)

    Useful links for Java beginnersMy new project Java Examples on Google Code

  14. #14
    Junior Member
    Join Date
    Jan 2014
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: GUI button not linking back to code

    Quote Originally Posted by andbin View Post
    The following can serve you as a good "lesson":

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class CounterTimer {
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new CounterTimerFrame().setVisible(true);
                }
            });
        }
    }
     
    class CounterTimerFrame extends JFrame {
        private int counter;
        private JButton startButton;
        private JLabel counterLabel;
        private Timer timer;
     
        public CounterTimerFrame() {
            super("Counter Timer");
     
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            setSize(250, 200);
     
            startButton = new JButton("Start");
            counterLabel = new JLabel("Counter: ");
     
            startButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    startEvent();
                }
            });
     
            timer = new Timer(500, new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    timerEvent();
                }
            });
     
            getContentPane().add(startButton, BorderLayout.NORTH);
            getContentPane().add(counterLabel, BorderLayout.SOUTH);
        }
     
        private void startEvent() {
            counter = 1;
            timer.start();
            startButton.setEnabled(false);
        }
     
        private void timerEvent() {
            counterLabel.setText("Counter: " + counter);
     
            if (counter < 10) {    // 10 is fixed here but could be a variable
                counter++;
            } else {
                timer.stop();
                startButton.setEnabled(true);
            }
        }
    }
    Thankyou so much dude. It took me a while to figure that out.

Similar Threads

  1. gui not linking with main project/ class
    By njabulo ngcobo in forum What's Wrong With My Code?
    Replies: 13
    Last Post: September 15th, 2013, 07:44 AM
  2. Linking Button with the text field
    By pranz in forum AWT / Java Swing
    Replies: 1
    Last Post: August 16th, 2012, 01:33 PM
  3. Disable Broser Back Button In ServerSide.
    By Srikanthjwp in forum JavaServer Pages: JSP & JSTL
    Replies: 4
    Last Post: November 15th, 2011, 12:09 AM
  4. Control Browser Back Button
    By Ganezan in forum JavaServer Pages: JSP & JSTL
    Replies: 2
    Last Post: January 1st, 2010, 08:21 AM
  5. control Browser Back Button
    By Ganezan in forum JavaServer Pages: JSP & JSTL
    Replies: 0
    Last Post: December 30th, 2009, 07:49 AM