I am making an application that will display a gui and read a text file. When the contents of the text file changes it will execute changes to the gui. However i need the gui to constantly be reading and checking the textfile for changes. I have tried thread.sleep() which just takes control and no code works other than the loop. After looking around i found reference to swing timers and running in new threads that weren't the EDT. This stuff is lost on me and I can find no way to implement it. Any help would be appreciated.
       public void run() {
         initComponents();
    while(true){System.out.println("ok");
        try {
             try {
        File myFile = new File("C:\\Users\\kyleg\\OneDrive\\Documents\\123.txt");
        System.out.println("Attempting to read from file in: "+myFile.getCanonicalPath());
        Scanner input = new Scanner(myFile);
        String in = "";
        in = input.nextLine();
        System.out.println(in);
       switch(in){
        case("1"):
            break;
            case("2"):
            break;
            case("3"):
            break;
       }
    } catch (IOException ex) {
        Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
    }
            Thread.sleep(1000);
        } catch (InterruptedException ex) {
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
        }
} }