// Timer label is updated with timer ticks.
TLabel timerLabel;
- /*
- // The modal window is a more low-level example of controlling a window
- // "from the outside". Most windows will probably subclass TWindow and
- // do this kind of logic on their own.
- private TWindow modalWindow;
- private void openModalWindow() {
- modalWindow = getApplication().addWindow("Demo Modal Window", 0, 0,
- 58, 15, TWindow.Flag.MODAL);
- modalWindow.addLabel("This is an example of a very braindead modal window.", 1, 1);
- modalWindow.addLabel("Modal windows are centered by default.", 1, 2);
- modalWindow.addButton("&Close", (modalWindow.width - 8)/2,
- modalWindow.height - 4, &modalWindowClose);
- }
- private void modalWindowClose() {
- getApplication().closeWindow(modalWindow);
- }
- */
-
/**
* We need to override onClose so that the timer will no longer be called
* after we close the window. TTimers currently are completely unaware
addLabel("Variable-width text field:", 1, row);
addField(35, row++, 15, false, "Field text");
-
addLabel("Fixed-width text field:", 1, row);
- addField(35, row, 15, true);
+ addField(35, row++, 15, true);
+ addLabel("Variable-width password:", 1, row);
+ addPasswordField(35, row++, 15, false);
+ addLabel("Fixed-width password:", 1, row);
+ addPasswordField(35, row++, 15, true, "hunter2");
row += 2;
if (!isModal()) {
);
}
row += 2;
+ */
if (!isModal()) {
addLabel("Terminal", 1, row);
addButton("Termi&nal", 35, row,
- {
- getApplication().openTerminal(0, 0);
+ new TAction() {
+ public void DO() {
+ getApplication().openTerminal(0, 0);
+ }
}
);
}
row += 2;
- */
progressBar = addProgressBar(1, row, 22, 0);
row++;
timerLabel = addLabel("Timer", 1, row);
- timer = getApplication().addTimer(100, true,
+ timer = getApplication().addTimer(250, true,
new TAction() {
public void DO() {
- timerLabel.setText(String.format("Timer: %d", timerI));
- timerLabel.setWidth(timerLabel.getText().length());
+ timerLabel.setLabel(String.format("Timer: %d", timerI));
+ timerLabel.setWidth(timerLabel.getLabel().length());
if (timerI < 100) {
timerI++;
}
progressBar.setValue(timerI);
- DemoMainWindow.this.setRepaint();
}
}
);
/**
* Public constructor.
*
+ * @param backendType one of the TApplication.BackendType values
* @throws Exception if TApplication can't instantiate the Backend.
*/
- public DemoApplication() throws Exception {
- super(null, null);
+ public DemoApplication(BackendType backendType) throws Exception {
+ super(backendType);
new DemoMainWindow(this);
// Add the menus
*/
public static void main(final String [] args) {
try {
- DemoApplication app = new DemoApplication();
- app.run();
+ // Swing is the default backend on Windows unless explicitly
+ // overridden by jexer.Swing.
+ TApplication.BackendType backendType = TApplication.BackendType.XTERM;
+ if (System.getProperty("os.name").startsWith("Windows")) {
+ backendType = TApplication.BackendType.SWING;
+ }
+ if (System.getProperty("jexer.Swing") != null) {
+ if (System.getProperty("jexer.Swing", "false").equals("true")) {
+ backendType = TApplication.BackendType.SWING;
+ } else {
+ backendType = TApplication.BackendType.XTERM;
+ }
+ }
+ DemoApplication app = new DemoApplication(backendType);
+ (new Thread(app)).start();
} catch (Exception e) {
e.printStackTrace();
}