count button clicks

后端 未结 8 1895
天命终不由人
天命终不由人 2020-12-16 08:58

I want to count the number of times the button is clicked using GUI.

I did this code:

private void jButton1ActionPerformed(java.awt.event.ActionEvent         


        
相关标签:
8条回答
  • 2020-12-16 09:28
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    
    
    public class Threading extends JFrame {
    
        private JPanel contentPane;
        private JTextField DisplayOne;
        private JTextField DisplayTwo;
    
        int count;
        int count1;
        int count2;
    
    
        /**
         * Launch the application.
         */
    
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() 
                {
                      try {
                        Threading frame = new Threading();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        /**
         * Create the frame.
         */
    
    
        public Threading() 
        {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 300);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            contentPane.setLayout(new BorderLayout(0, 0));
            setContentPane(contentPane);
    
            JPanel panel = new JPanel();
            contentPane.add(panel, BorderLayout.CENTER);
    
            DisplayOne = new JTextField();
            panel.add(DisplayOne);
            DisplayOne.setColumns(10);
    
            DisplayTwo = new JTextField();
            panel.add(DisplayTwo);
            DisplayTwo.setColumns(10);
    
            JButton btnCountOne = new JButton("Count 1");
            count1=0;
            btnCountOne.addActionListener(new ActionListener() {                
                    public void actionPerformed(ActionEvent arg0) 
                    {   
                        DisplayOne.setText(Integer.toString(count1++));
                    }
            });
            panel.add(btnCountOne);
    
            JButton btnCountTwo = new JButton("Count 2");
            count2=0;
            btnCountTwo.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) 
                {
                    DisplayTwo.setText(Integer.toString(count2++));
                }
            });
            panel.add(btnCountTwo);
    
            JButton btnCountBoth = new JButton("Count Both");
            count=0;
            btnCountBoth.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) 
                {
                    while (count < 10)
                    {
                    DisplayOne.setText(Integer.toString(++count));
                    DisplayTwo.setText(Integer.toString(count));
                    }
                }
            });
            panel.add(btnCountBoth);
        }
    
    }
    
    0 讨论(0)
  • 2020-12-16 09:29

    Depending on how you are instantiating this class you need to declare the clicked variable at either the field level or the class variable level. Currently, the scope of the clicked variable is local to the method.

    Option 1

    int clicked = 0;
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 
     {                                         
      clicked++;
      System.out.println(clicked);
     }  
    

    Option 2

    static int clicked = 0;
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 
     {                                         
      clicked++;
      System.out.println(clicked);
     } 
    

    The option you use will depend on instantiation. The second option should be avoided if possible.

    0 讨论(0)
提交回复
热议问题