Class SameTextGUIThread

java.lang.Object
com.googlecode.lanterna.gui2.AbstractTextGUIThread
com.googlecode.lanterna.gui2.SameTextGUIThread
All Implemented Interfaces:
TextGUIThread

public class SameTextGUIThread extends AbstractTextGUIThread
This TextGUIThread implementation is assuming the GUI event thread will be the same as the thread that creates the TextGUI objects. This means on the thread you create the GUI on, when you are done you pass over control to lanterna and let it manage the GUI for you. When the GUI is done, you'll get back control again over the thread. This is different from SeparateTextGUIThread which spawns a new thread that manages the GUI and leaves the current thread for you to handle.

Here are two examples of how to use SameTextGUIThread:

     
     MultiWindowTextGUI textGUI = new MultiWindowTextGUI(new SameTextGUIThread.Factory(), screen);
     // ... add components ...
     while(weWantToContinueRunningTheGUI) {
         if(!textGUI.getGUIThread().processEventsAndUpdate()) {
             Thread.sleep(1);
         }
     }
     // ... tear down ...
     
 
In the example above, we use very precise control over events processing and when to update the GUI. In the example below we pass some of that control over to Lanterna, since the thread won't resume until the window is closed.
     
     MultiWindowTextGUI textGUI = new MultiWindowTextGUI(new SameTextGUIThread.Factory(), screen);
     Window window = new MyWindow();
     textGUI.addWindowAndWait(window); // This call will run the event/update loop and won't return until "window" is closed
     // ... tear down ...
     
 
See Also:
  • Field Details

    • guiThread

      private final Thread guiThread
  • Constructor Details

    • SameTextGUIThread

      private SameTextGUIThread(TextGUI textGUI)
  • Method Details

    • getThread

      public Thread getThread()
      Description copied from interface: TextGUIThread
      Returns the Java thread which is processing GUI events and updating the screen
      Returns:
      Thread which is processing events and updating the screen