Java Code Examples for com.googlecode.lanterna.screen.Screen#stopScreen()

The following examples show how to use com.googlecode.lanterna.screen.Screen#stopScreen() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DrawRectangle.java    From lanterna with GNU Lesser General Public License v3.0 7 votes vote down vote up
public static void main(String[] args) throws IOException {
	Terminal terminal = new DefaultTerminalFactory().createTerminal();
	Screen screen = new TerminalScreen(terminal);

	TextGraphics tGraphics = screen.newTextGraphics();

	screen.startScreen();
	screen.clear();

	tGraphics.drawRectangle(
		new TerminalPosition(3,3), new TerminalSize(10,10), '*');
	screen.refresh();

	screen.readInput();
	screen.stopScreen();
}
 
Example 2
Source File: Issue95.java    From lanterna with GNU Lesser General Public License v3.0 6 votes vote down vote up
public static void main(String[] args) throws InterruptedException, IOException {
    SwingTerminalFrame terminal = new SwingTerminalFrame(TerminalEmulatorAutoCloseTrigger.CloseOnExitPrivateMode);
    terminal.setCursorVisible(false);

    Screen screen = new TerminalScreen(terminal);
    screen.startScreen();
    
    terminal.setTitle("Freedom: An arena-battle roguelike");
    terminal.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    terminal.setResizable(false);
    terminal.setVisible(true);

    while(screen.pollInput() == null) {
        if(screen.doResizeIfNecessary() != null) {
            screen.refresh();
        }
        Thread.sleep(100);
    }
    screen.stopScreen();
}
 
Example 3
Source File: Issue384.java    From lanterna with GNU Lesser General Public License v3.0 6 votes vote down vote up
public static void main(String[] args) throws IOException {
    final Screen screen = new DefaultTerminalFactory().createScreen();
    screen.startScreen();
    final MultiWindowTextGUI textGUI = new MultiWindowTextGUI(screen);
    final Window window = new BasicWindow("Table container test");
    window.setHints(Collections.singletonList(Window.Hint.FIXED_SIZE));
    window.setFixedSize(new TerminalSize(60, 14));

    final Table<String> table = new Table<>("Column", "Expanded Column", "Column");
    table.setCellSelection(true);
    table.setVisibleRows(10);
    final DefaultTableRenderer<String> tableRenderer = new DefaultTableRenderer<>();
    tableRenderer.setExpandableColumns(Collections.singletonList(1));
    table.setRenderer(tableRenderer);

    final TableModel<String> model = table.getTableModel();
    for(int i = 1; i <= 20; i++) {
        String cellLabel = "Row" + i;
        model.addRow(cellLabel, cellLabel, cellLabel);
    }

    Panel buttonPanel = new Panel();
    buttonPanel.setLayoutManager(new LinearLayout(Direction.HORIZONTAL));
    buttonPanel.addComponent(new Button("Change Expandable Columns", () -> showExpandableColumnsEditor(textGUI, tableRenderer)));
    buttonPanel.addComponent(new Button("Close", window::close));

    window.setComponent(Panels.vertical(
            table.withBorder(Borders.singleLineBevel("Table")),
            buttonPanel));
    table.setLayoutData(LinearLayout.createLayoutData(LinearLayout.Alignment.Fill));
    textGUI.addWindow(window);
    textGUI.waitForWindowToClose(window);
    screen.stopScreen();
}
 
Example 4
Source File: Issue334.java    From lanterna with GNU Lesser General Public License v3.0 6 votes vote down vote up
public static void main(String[] args) throws IOException {
    Terminal terminal = new DefaultTerminalFactory().createTerminal();
    Screen screen = new TerminalScreen(terminal);
    screen.startScreen();

    // Create panel to hold components
    Panel panel = new Panel();
    panel.setLayoutManager(new GridLayout(1));
    panel.addComponent(new Label(""));

    // Create gui and start gui
    MultiWindowTextGUI gui = new MultiWindowTextGUI(screen, new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLUE));

    // Create window to hold the panel
    final BasicWindow window = new BasicWindow();
    window.setComponent(Panels.vertical(panel));
    window.setCloseWindowWithEscape(true);

    gui.addWindowAndWait(window);
    screen.stopScreen();
    terminal.close();
}
 
Example 5
Source File: TerminalTta3Orchestrator.java    From pen-test-automation with Apache License 2.0 6 votes vote down vote up
public static void main(String[] args) throws IOException {
    // Setup terminal and screen layers
    TerminalSize size = new TerminalSize(80,50);  // unsure how to do this.
    Terminal terminal = new DefaultTerminalFactory().createTerminal();
    Screen screen = new TerminalScreen(terminal);
    /// ???.setPreferredSize(new TerminalSize(20, 5))

    try {
        screen.startScreen();
        TerminalTta3Orchestrator terminalTta3Orchestrator = new TerminalTta3Orchestrator(screen);
        terminalTta3Orchestrator.start();
    } finally {
        screen.stopScreen();
        terminal.close();
    }
}
 
Example 6
Source File: TestBase.java    From lanterna with GNU Lesser General Public License v3.0 6 votes vote down vote up
void run(String[] args) throws IOException, InterruptedException {
    Screen screen = new TestTerminalFactory(args).createScreen();
    screen.startScreen();
    MultiWindowTextGUI textGUI = createTextGUI(screen);
    String theme = extractTheme(args);
    if(theme != null) {
        textGUI.setTheme(LanternaThemes.getRegisteredTheme(theme));
    }
    textGUI.setBlockingIO(false);
    textGUI.setEOFWhenNoWindows(true);
    //noinspection ResultOfMethodCallIgnored
    textGUI.isEOFWhenNoWindows();   //No meaning, just to silence IntelliJ:s "is never used" alert

    try {
        init(textGUI);
        AsynchronousTextGUIThread guiThread = (AsynchronousTextGUIThread)textGUI.getGUIThread();
        guiThread.start();
        afterGUIThreadStarted(textGUI);
        guiThread.waitForStop();
    }
    finally {
        screen.stopScreen();
    }
}
 
Example 7
Source File: MultiButtonTest.java    From lanterna with GNU Lesser General Public License v3.0 6 votes vote down vote up
public static void main(String[] args) throws IOException {
    Screen screen = new TestTerminalFactory(args).createScreen();
    screen.startScreen();
    MultiWindowTextGUI textGUI = new MultiWindowTextGUI(screen);
    textGUI.setEOFWhenNoWindows(true);
    try {
        final BasicWindow window = new BasicWindow("Button test");
        Panel contentArea = new Panel();
        contentArea.setLayoutManager(new LinearLayout(Direction.VERTICAL));
        contentArea.addComponent(new Button(""));
        contentArea.addComponent(new Button("TRE"));
        contentArea.addComponent(new Button("Button"));
        contentArea.addComponent(new Button("Another button"));
        contentArea.addComponent(new EmptySpace(new TerminalSize(5, 1)));
        //contentArea.addComponent(new Button("Here is a\nmulti-line\ntext segment that is using \\n"));
        contentArea.addComponent(new Button("OK", window::close));

        window.setComponent(contentArea);
        textGUI.addWindowAndWait(window);
    }
    finally {
        screen.stopScreen();
    }
}
 
Example 8
Source File: OutputString.java    From lanterna with GNU Lesser General Public License v3.0 6 votes vote down vote up
public static void main(String[] args) throws IOException {
	Terminal terminal = new DefaultTerminalFactory().createTerminal();
	Screen screen = new TerminalScreen(terminal);

	String s = "Hello World!";
	TextGraphics tGraphics = screen.newTextGraphics();

	screen.startScreen();
	screen.clear();

	tGraphics.putString(10, 10, s);
	screen.refresh();

	screen.readInput();
	screen.stopScreen();
}
 
Example 9
Source File: FullScreenTextGUITest.java    From lanterna with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String[] args) throws IOException, InterruptedException {
    Screen screen = new TestTerminalFactory(args).setInitialTerminalSize(new TerminalSize(80, 25)).createScreen();
    screen.startScreen();

    final AtomicBoolean stop = new AtomicBoolean(false);
    MultiWindowTextGUI textGUI = new MultiWindowTextGUI(screen);
    textGUI.addListener((textGUI1, key) -> {
        if(key.getKeyType() == KeyType.Escape) {
            stop.set(true);
            return true;
        }
        return false;
    });
    try {
        textGUI.getBackgroundPane().setComponent(new BIOS());
        while(!stop.get()) {
            if(!textGUI.getGUIThread().processEventsAndUpdate()) {
                Thread.sleep(1);
            }
        }
    }
    catch (EOFException ignore) {
        // Terminal closed
    }
    finally {
        screen.stopScreen();
    }
}
 
Example 10
Source File: Issue155.java    From lanterna with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String... args) throws IOException {
    Terminal term = new DefaultTerminalFactory().createTerminal();
    Screen screen = new TerminalScreen(term);
    WindowManager windowManager = new DefaultWindowManager();
    Component background = new EmptySpace(TextColor.ANSI.DEFAULT);
    final WindowBasedTextGUI gui = new MultiWindowTextGUI(screen, windowManager, background);
    screen.startScreen();
    gui.addWindowAndWait(new BasicWindow("Issue155") {{
        setComponent(createUi(gui, this));
    }});
    screen.stopScreen();
}
 
Example 11
Source File: Issue212.java    From lanterna with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String[] args) throws IOException {
    final Table<String> table = new Table<>("Column 1", "Column 2",
            "Column 3");
    table.getTableModel().addRow("1", "2", "3");
    table.getTableModel().addRow("1", "2", "3");
    table.getTableModel().addRow("1", "2", "3");
    table.getTableModel().addRow("1", "2", "3");
    table.getTableModel().addRow("1", "2", "3");
    table.setSelectAction(() -> {
        List<String> data = table.getTableModel().getRow(
                table.getSelectedRow());
        for (String aData : data) {
            System.out.println(aData);
        }
    });

    Window win = new BasicWindow();
    win.setComponent(table);

    DefaultTerminalFactory factory = new DefaultTerminalFactory();
    Terminal terminal = factory.createTerminal();

    Screen screen = new TerminalScreen(terminal);
    screen.startScreen();

    // Create gui and start gui
    MultiWindowTextGUI gui = new MultiWindowTextGUI(screen,
            new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLUE));
    gui.addWindowAndWait(win);

    screen.stopScreen();
}
 
Example 12
Source File: OutputChar.java    From lanterna with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String[] args) throws IOException {
	Terminal terminal = new DefaultTerminalFactory().createTerminal();
	Screen screen = new TerminalScreen(terminal);

	screen.startScreen();
	screen.clear();

	screen.setCharacter(10, 10, new TextCharacter('*'));
	screen.refresh();

	screen.readInput();
	screen.stopScreen();
}
 
Example 13
Source File: Issue376.java    From lanterna with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String... args) throws IOException {
    Screen screen = new DefaultTerminalFactory().createScreen();
    screen.startScreen();
    MultiWindowTextGUI gui = new MultiWindowTextGUI(screen);
    Window window = new LabelWithTabWindow();
    gui.addWindow(window);
    gui.waitForWindowToClose(window);
    screen.stopScreen();
}
 
Example 14
Source File: Issue150.java    From lanterna with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String... args) throws IOException {
    Terminal term = new DefaultTerminalFactory().createTerminal();
    Screen screen = new TerminalScreen(term);
    WindowManager windowManager = new DefaultWindowManager();
    Component background = new EmptySpace(TextColor.ANSI.DEFAULT);
    final WindowBasedTextGUI gui = new MultiWindowTextGUI(screen, windowManager, background);
    screen.startScreen();
    gui.addWindowAndWait(new BasicWindow("Issue150") {{
        setComponent(createUi());
    }});
    screen.stopScreen();
}
 
Example 15
Source File: Issue380.java    From lanterna with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String[] args) throws IOException {
    Screen screen = new DefaultTerminalFactory().createScreen();
    screen.startScreen();
    MultiWindowTextGUI gui = new MultiWindowTextGUI(screen);
    Window window = new GridWindowWithTwoLargeComponents();
    window.setHints(Collections.singletonList(Window.Hint.EXPANDED));
    gui.addWindow(window);
    gui.waitForWindowToClose(window);
    screen.stopScreen();
}
 
Example 16
Source File: Issue460.java    From lanterna with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String[] args) throws Exception {
    Terminal terminal = new DefaultTerminalFactory().createTerminal();
    Screen screen = new TerminalScreen(terminal);
    screen.startScreen();

    final BasicWindow window1 = new BasicWindow();
    Panel contentPanel = new Panel(new GridLayout(1));
    contentPanel.addComponent(new Label("VERTICAL"), GridLayout.createLayoutData(
            GridLayout.Alignment.CENTER,
            GridLayout.Alignment.CENTER,
            true,
            true,
            1,
            4
    ));
    contentPanel.addComponent(new Button("Close", new Runnable() {
        @Override
        public void run() {
            window1.close();
        }
    }), GridLayout.createHorizontallyFilledLayoutData(2));
    window1.setComponent(contentPanel);

    // Create gui and start gui
    MultiWindowTextGUI gui = new MultiWindowTextGUI(screen);
    gui.addWindowAndWait(window1);
    screen.stopScreen();
}
 
Example 17
Source File: MultiLabelTest.java    From lanterna with GNU Lesser General Public License v3.0 4 votes vote down vote up
public static void main(String[] args) throws IOException, InterruptedException {
    Screen screen = new TestTerminalFactory(args).createScreen();
    screen.startScreen();
    WindowBasedTextGUI textGUI = new MultiWindowTextGUI(screen);
    try {
        final BasicWindow window = new BasicWindow("Label test");
        Panel contentArea = new Panel();
        contentArea.setLayoutManager(new LinearLayout(Direction.VERTICAL));
        contentArea.addComponent(new Label("This is a single line label"));
        contentArea.addComponent(new Label("This is another label on the second line"));
        contentArea.addComponent(new EmptySpace(new TerminalSize(5, 1)));
        contentArea.addComponent(new Label("Here is a\nmulti-line\ntext segment that is using \\n"));
        Label label = new Label("We can change foreground color...");
        label.setForegroundColor(TextColor.ANSI.BLUE);
        contentArea.addComponent(label);
        label = new Label("...and background color...");
        label.setBackgroundColor(TextColor.ANSI.MAGENTA);
        contentArea.addComponent(label);
        label = new Label("...and add custom SGR styles!");
        label.addStyle(SGR.BOLD);
        label.addStyle(SGR.UNDERLINE);
        contentArea.addComponent(label);
        contentArea.addComponent(new EmptySpace(new TerminalSize(5, 1)));
        contentArea.addComponent(new Label("Here is an animated label:"));
        contentArea.addComponent(AnimatedLabel.createClassicSpinningLine());
        contentArea.addComponent(new EmptySpace());
        contentArea.addComponent(new Button("Close", window::close).setLayoutData(LinearLayout.createLayoutData(LinearLayout.Alignment.Center)));

        window.setComponent(contentArea);
        textGUI.addWindow(window);
        textGUI.updateScreen();
        while(!textGUI.getWindows().isEmpty()) {
            textGUI.processInput();
            if(textGUI.isPendingUpdate()) {
                textGUI.updateScreen();
            }
            else {
                Thread.sleep(1);
            }
        }
    }
    finally {
        screen.stopScreen();
    }
}