How to define a modal message returning value in 3.0.0

58 views
Skip to first unread message

Nenad Kirich

unread,
Apr 16, 2018, 3:24:24 AM4/16/18
to lanterna-discuss

How to create a modal message with one or more buttons in version 3.0.0 that will return a value reflecting what button was pressed? Googled for examples and found this source for Condi. It references older library and this snippet doesn't work for me:

if (DialogResult.YES == MessageBox.showMessageBox(getOwner(), "Exit?", "Sure exit?", DialogButtons.YES_NO))
System.exit(0);


This works for me:

MessageDialog.showMessageDialog(textGUI, "Error", errMsg, MessageDialogButton.Abort, MessageDialogButton.Continue);

... but of course gives me no feedback on button pressed since I can't figure out the correct syntax.


Even message dialog builder shown on their GitHub example page doesn't work for me.


Using these imports:

import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.gui2.BasicWindow;
import com.googlecode.lanterna.gui2.Button;
import com.googlecode.lanterna.gui2.Direction;
import com.googlecode.lanterna.gui2.EmptySpace;
import com.googlecode.lanterna.gui2.GridLayout;
import com.googlecode.lanterna.gui2.Label;
import com.googlecode.lanterna.gui2.MultiWindowTextGUI;
import com.googlecode.lanterna.gui2.Panel;
import com.googlecode.lanterna.gui2.Separator;
import com.googlecode.lanterna.gui2.TextBox;
import com.googlecode.lanterna.gui2.Window;
import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
import com.googlecode.lanterna.gui2.dialogs.MessageDialog;
import com.googlecode.lanterna.gui2.dialogs.MessageDialogButton;
import com.googlecode.lanterna.screen.Screen;
import com.googlecode.lanterna.terminal.DefaultTerminalFactory;


Thank you for you help!

Brad C.

unread,
Apr 18, 2018, 11:06:54 AM4/18/18
to lanterna-discuss
Check out the source code for the MessageDialog class on GitHub and you will see that showMessageDialog returns a MessageDialogButton type.


MessageDialogButton results = MessageBox.showMessageDialog(..........);

if (results == MessageDialogButton.Yes) {
    .....
Reply all
Reply to author
Forward
0 new messages