Volkswagen
Volkswagen

Reputation: 165

Count number of button clicks in given time

JButton btnNewButton = new JButton("CLICK ME!");
btnNewButton.setBounds(134, 142, 274, 77);
btnNewButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {                
    clicked++;
    String x=Integer.toString(clicked);
    textArea.setText(x);                                            
    }       
});

I'm stuck here I want to create a program in GUI that counts the number of button click in specific time for example the timer start then count the number of clicks when the loop stop the button click is not working or stop counting the clicks

Upvotes: 0

Views: 2432

Answers (3)

Gorbles
Gorbles

Reputation: 1168

https://stackoverflow.com/a/9413767/1306811

Have a click counter.

private int clickCounter = 0; // as an example

Create get/set methods for it.

Add a MouseListener to your JButton so you can effectively track click events (MouseEvent arg0, arg0.getClickCount(), etc). At the end of each call to mouseClicked increment the clickCounter (clickCounter += arg0.getClickCount(), as an example).

Modify the answer linked so that clickCounter is set to 0 at every "time step" (however long you want it to be).

Voila.

Upvotes: 0

Shakeeb Ayaz
Shakeeb Ayaz

Reputation: 6096

There are two possible solution

1.Make the button clickable when timer starts and unclickable when timer stops

Or

2.also u can use flag to check whether timer is running Or not.If timer is running make flag true when gets over make it false. Somthing like below snipet

public void actionPerformed(ActionEvent e) {     
if (flag) {
    clicked++;
    String x=Integer.toString(clicked);
    textArea.setText(x);                                            
 }    
else
{
 // doSomething
}       
}

Upvotes: 1

ICeQ
ICeQ

Reputation: 152

You can have some boolean variable which says if it's time for clicking (set on true when timer is started and on false when time's up). Then count clicks when this variable is true:

public void actionPerformed(ActionEvent e) {     
    if (timeIsRunning) {
        clicked++;
        String x=Integer.toString(clicked);
        textArea.setText(x);                                            
    }           
}

Upvotes: 0

Related Questions