Search code examples
javatimeronclickschedule

On time clicker JAVA code error


Not understand WHY SCHEDULE underline always and not working ( I tried separated into classes, same thing, just can't get where the problem is. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;


    public class assertion extends JFrame {

     JTextField curTime, xT, yT;
     Timer timer;

     public static void main(String[] args){ 

      new assertion();

     }


     public assertion() {

      JFrame window = new JFrame("ВИ Кликер");
      window.setSize(400,400);

      JPanel mainframe=new JPanel();
            window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);




            JLabel x=new JLabel();
            x.setText("X-Coordinate");
            mainframe.add(x);

            xT=new JTextField(10);
            mainframe.add(xT);
            window.getContentPane().add(mainframe);
            window.pack();
            window.setVisible(true);



            JLabel y=new JLabel();
            y.setText("Y-Coordinate");
            mainframe.add(y);

            yT=new JTextField(10);
            mainframe.add(yT);
            window.getContentPane().add(mainframe);
            window.pack();
            window.setVisible(true);



            JLabel time=new JLabel();
            time.setText("Time");
            mainframe.add(o);

            curTime = new JTextField(10);
            mainframe.add(curTime);
            window.getContentPane().add(mainframe);
            window.pack();
            window.setVisible(true);




            JButton gO =new JButton();
            gO.setText("GO");
            mainframe.add(gO);


            gO.addActionListener(new ActionListener(){
             public  void actionPerformed(ActionEvent e){
         timer();
             }
          });


     }


     public void timer(){


      Calendar calendar = Calendar.getInstance();
      calendar.set(Calendar.HOUR_OF_DAY, 23);
      calendar.set(Calendar.MINUTE, 1);
      calendar.set(Calendar.SECOND, 0);
      Date time = calendar.getTime();

      timer = new Timer();
      timer.schedule(new assertion(), time);

     }

     public void mouse() throws AWTException {

      String xx = xT.getText(), yy = yT.getText();
      int xxx = Integer.parseInt(xx), yyy = Integer.parseInt(yy);


      Robot robot = new Robot();
      robot.mouseMove(xxx, yyy);
      robot.mousePress(InputEvent.BUTTON1_MASK);
      robot.mouseRelease(InputEvent.BUTTON1_MASK);
     }


    }

Solution

  • The class Timer is ambiguous between java.util.Timer and javax.swing.Timer so timer.schedule cannot be resolved.

    Remove the package import

    import java.util.*;
    

    and only import the classes you need specifically, for example

    import java.util.Calendar;
    

    javax.swing.Timer is the correct Timer to use with Swing so you will need to refactor your code to account for this. There's no need to create a new instance of assertion - just ensure that all the methods are invoked the Swing Timer ActionListener.

    Timer timer = new Timer(1000, new ActionListener() {
    
        @Override
        public void actionPerformed(ActionEvent e) {
            // perform timer actions 
        }
    });
    

    Aside: Java Naming conventions show that classes start with an uppercase letter, e.g. Assertion