List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Window Window
public Window(String title, WindowStyle style)
From source file:com.digitale.utils.Actors.java
License:Open Source License
public static Actor topToast(final String text, final float time, final Skin skin) { final Window window = new Window("", skin); final Color windowColor = new Color(1, 0, 0, 1); window.setMovable(false);// www.ja v a2 s .c o m window.defaults().spaceBottom(5); Label toastLabel = new Label(text, skin); toastLabel.setAlignment(Align.LEFT); toastLabel.setWrap(true); window.row().fillX().expandX(); window.add(toastLabel).fillX().padLeft(10); window.invalidate(); window.width = Gdx.app.getGraphics().getWidth() * 0.95f; window.height = toastLabel.getTextBounds().height + 20 + window.getStyle().titleFont.getLineHeight(); window.x = Gdx.app.getGraphics().getWidth() * 0.5f - window.width * 0.5f; float outsideY = Gdx.app.getGraphics().getHeight() + window.height; float insideY = Gdx.app.getGraphics().getHeight() - window.height + window.getStyle().titleFont.getLineHeight(); window.y = outsideY; final TimelineAnimation timelineAnimation = Builders.animation( // Builders.timeline() // .value(Builders.timelineValue(window, Scene2dConverters.actorPositionTypeConverter) // .keyFrame(0f, new float[] { window.x, outsideY }, // InterpolationFunctions.linear(), InterpolationFunctions.easeIn()) // .keyFrame(1f, new float[] { window.x, insideY }) // .keyFrame(4f, new float[] { window.x, insideY }, // InterpolationFunctions.linear(), InterpolationFunctions.easeOut()) // .keyFrame(5f, new float[] { window.x, outsideY }) // ) // ) // .started(true) // .delay(0f) // .speed(5f / time) // .build(); window.action(new ActionAdapter() { @Override public void act(float delta) { timelineAnimation.update(delta); if (timelineAnimation.isFinished()) { window.getStage().removeActor(window); } } }); return window; }
From source file:com.digitale.utils.Actors.java
License:Open Source License
public static Actor bottomToast(final String text, final float time, Skin skin) { skin = new Skin(Gdx.files.internal("data/dialogskin.json"), Gdx.files.internal("data/dialogskin.png")); final Window window = new Window("", skin); window.setMovable(false);//from www . j a va2 s . c o m window.defaults().spaceBottom(5); Label toastLabel = new Label(text, skin); toastLabel.setAlignment(Align.LEFT); toastLabel.setWrap(true); window.row().fillX().expandX(); window.add(toastLabel).fillX().padLeft(10); window.invalidate(); window.width = Gdx.graphics.getWidth() * 0.5f; window.height = toastLabel.getTextBounds().height * 5 + window.getStyle().titleFont.getLineHeight(); window.x = Gdx.graphics.getWidth() * 0.5f - window.width * 0.5f; float outsideY = 0 - window.height; float insideY = -20 + window.height + window.getStyle().titleFont.getLineHeight(); window.y = outsideY; final TimelineAnimation timelineAnimation = Builders.animation( // Builders.timeline() // .value(Builders.timelineValue(window, Scene2dConverters.actorPositionTypeConverter) // .keyFrame(0f, new float[] { window.x, outsideY }, // InterpolationFunctions.linear(), InterpolationFunctions.easeIn()) // .keyFrame(.5f, new float[] { window.x, insideY }) // .keyFrame(4f, new float[] { window.x, insideY }, // InterpolationFunctions.linear(), InterpolationFunctions.easeOut()) // .keyFrame(4.5f, new float[] { window.x, outsideY }) // ) // ) // .started(true) // .delay(0f) // .speed(5f / time) // .build(); window.action(new ActionAdapter() { @Override public void act(float delta) { timelineAnimation.update(delta); if (timelineAnimation.isFinished()) { window.getStage().removeActor(window); } } }); return window; }
From source file:com.digitale.utils.Actors.java
License:Open Source License
public static Actor twoOptionsDialog(String texts, final DialogListener dialogListener, String titleText, String firstOption, String secondOption, Skin skin) { Window window = new Window(titleText, skin); window.setMovable(false);/*from w w w . j ava2 s . c o m*/ TextButton firstOptionButton = new TextButton(firstOption, skin); TextButton secondOptionButton = new TextButton(secondOption, skin); firstOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(0); } }); secondOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(1); } }); window.defaults().spaceBottom(5); window.row().fill().expandX(); //for (int i = 0; i < texts.length; i++) { window.row().padLeft(10); Label label = new Label(texts, skin); label.setWrap(true); window.add(label).align(Align.LEFT).colspan(2).fillX(); //} window.row().fill().expandX(); window.add(firstOptionButton).align(Align.CENTER).padLeft(5).padRight(5).expandX(); window.add(secondOptionButton).align(Align.CENTER).padLeft(5).padRight(5).expandX(); FlickScrollPane scrollPane = new FlickScrollPane(window); //scrollPane.width = GameLoop.camera.viewportWidth * 0.5f; scrollPane.width = Gdx.graphics.getWidth() * 0.5f; scrollPane.height = Gdx.graphics.getHeight() * 0.6f; scrollPane.x = Gdx.graphics.getWidth() * 0.5f - scrollPane.width * 0.5f; scrollPane.y = Gdx.graphics.getHeight() * 0.6f - scrollPane.height * 0.6f; return scrollPane; }
From source file:com.digitale.utils.Actors.java
License:Open Source License
public static Actor threeOptionsDialog(String texts, final DialogListener dialogListener, String titleText, String firstOption, String secondOption, String thirdOption, Skin skin) { Window window = new Window(titleText, skin); window.setMovable(true);/*from w w w . ja v a2 s . c om*/ TextButton firstOptionButton = new TextButton(firstOption, skin); TextButton secondOptionButton = new TextButton(secondOption, skin); TextButton thirdOptionButton = new TextButton(thirdOption, skin); firstOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(0); } }); secondOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(1); } }); thirdOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(2); } }); window.defaults().spaceBottom(5); window.row().fill().expandX(); window.row().padLeft(5); Label label = new Label(texts, skin); label.setWrap(true); window.add(label).align(Align.LEFT).colspan(3).fillX(); window.row().fill().expandX().padTop(5); window.add(firstOptionButton).align(Align.CENTER).padLeft(5).padRight(5); window.add(secondOptionButton).align(Align.CENTER).padLeft(5).padRight(5); window.add(thirdOptionButton).align(Align.CENTER).padLeft(5).padRight(5); FlickScrollPane scrollPane = new FlickScrollPane(window); scrollPane.width = Gdx.graphics.getWidth() * 0.5f; scrollPane.height = Gdx.graphics.getHeight() * 0.6f; scrollPane.x = Gdx.graphics.getWidth() * 0.5f - scrollPane.width * 0.5f; scrollPane.y = Gdx.graphics.getHeight() * 0.6f - scrollPane.height * 0.6f; return scrollPane; }
From source file:com.digitale.utils.Actors.java
License:Open Source License
public static Actor MissionDialog(String texts, final DialogListener dialogListener, String titleText, String firstOption, String secondOption, String thirdOption, String forthOption, Skin skin) { Window window = new Window(titleText, skin); window.setFillParent(false);/* w w w . ja v a 2 s.com*/ window.setMovable(true); TextButton firstOptionButton = new TextButton(firstOption, skin); TextButton secondOptionButton = new TextButton(secondOption, skin); TextButton thirdOptionButton = new TextButton(thirdOption, skin); TextButton forthOptionButton = new TextButton(forthOption, skin); firstOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(0); } }); secondOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(1); } }); thirdOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(2); } }); forthOptionButton.setClickListener(new ClickListener() { @Override public void click(Actor actor, float x, float y) { dialogListener.optionSelected(3); } }); if (Stardust3d.DEBUG) window.debug(); window.defaults().spaceBottom(5); window.row(); window.row().padLeft(5); Label label = new Label(texts, skin); label.setWrap(true); window.add(label).align(Align.LEFT).colspan(4).fillX(); window.row().padTop(5); window.add(firstOptionButton).align(Align.CENTER).padLeft(5).padRight(5); window.add(secondOptionButton).align(Align.CENTER).padLeft(5).padRight(5); window.add(thirdOptionButton).align(Align.CENTER).padLeft(5).padRight(5); window.add(forthOptionButton).align(Align.CENTER).padLeft(5).padRight(5); window.pack(); FlickScrollPane scrollPane = new FlickScrollPane(window); scrollPane.width = Gdx.app.getGraphics().getWidth() * 0.75f; scrollPane.height = Gdx.app.getGraphics().getHeight() * 0.75f; scrollPane.x = Gdx.app.getGraphics().getWidth() * 0.5f - scrollPane.width * 0.5f; scrollPane.y = Gdx.app.getGraphics().getHeight() * 0.5f - scrollPane.height * 0.5f; return scrollPane; }
From source file:com.packtpub.libgdx.canyonbunny.screens.MenuScreen.java
License:Apache License
private Table buildOptionsWindowLayer() { winOptions = new Window("Options", skinLibgdx); // + Audio Settings: Sound/Music CheckBox and Volume Slider winOptions.add(buildOptWinAudioSettings()).row(); // + Character Skin: Selection Box (White, Gray, Brown) winOptions.add(buildOptWinSkinSelection()).row(); // + Debug: Show FPS Counter winOptions.add(buildOptWinDebug()).row(); // + Separator and Buttons (Save, Cancel) winOptions.add(buildOptWinButtons()).pad(10, 0, 10, 0); // Make options window slightly transparent winOptions.setColor(1, 1, 1, 0.8f);//from w w w . j a va2s . c o m // Hide options window by default winOptions.setVisible(false); if (debugEnabled) winOptions.debug(); // Let TableLayout recalculate widget sizes and positions winOptions.pack(); // Move options window to bottom right corner winOptions.setPosition(Constants.VIEWPORT_GUI_WIDTH - winOptions.getWidth() - 50, 50); return winOptions; }
From source file:com.ray3k.skincomposer.RootTable.java
License:Open Source License
public void refreshPreview() { if (previewTable != null) { previewTable.clear();// ww w. ja va 2 s.co m previewTable.setColor((Color) previewProperties.get("bgcolor")); for (BitmapFont font : previewFonts) { font.dispose(); } if (classSelectBox.getSelectedIndex() >= 0) { StyleData styleData = getSelectedStyle(); Class clazz = Main.BASIC_CLASSES[classSelectBox.getSelectedIndex()]; if (!styleData.hasMandatoryFields()) { Label label; if (clazz.equals(SelectBox.class)) { label = new Label( "Please fill all mandatory fields\n(Highlighted on the left)\n\nscrollStyle and listStyle\nmust already be defined", getSkin()); } else if (clazz.equals(TextTooltip.class)) { label = new Label( "Please fill all mandatory fields\n(Highlighted on the left)\n\nlabel must already be defined", getSkin()); } else { label = new Label("Please fill all mandatory fields\n(Highlighted on the left)", getSkin()); } label.setAlignment(Align.center); previewTable.add(label); } else if (styleData.hasAllNullFields()) { Label label; label = new Label( "All fields are empty!\nEmpty classes are not exported\nAdd style properties in the menu to the left", getSkin()); label.setAlignment(Align.center); previewTable.add(label); } else { Actor widget = null; if (clazz.equals(Button.class)) { Button.ButtonStyle style = createPreviewStyle(Button.ButtonStyle.class, styleData); widget = new Button(style); ((Button) widget).setDisabled((boolean) previewProperties.get("disabled")); widget.addListener(main.getHandListener()); } else if (clazz.equals(CheckBox.class)) { CheckBox.CheckBoxStyle style = createPreviewStyle(CheckBox.CheckBoxStyle.class, styleData); widget = new CheckBox("", style); ((CheckBox) widget).setDisabled((boolean) previewProperties.get("disabled")); ((CheckBox) widget).setText((String) previewProperties.get("text")); widget.addListener(main.getHandListener()); } else if (clazz.equals(ImageButton.class)) { ImageButtonStyle style = createPreviewStyle(ImageButtonStyle.class, styleData); widget = new ImageButton(style); ((ImageButton) widget).setDisabled((boolean) previewProperties.get("disabled")); widget.addListener(main.getHandListener()); } else if (clazz.equals(ImageTextButton.class)) { ImageTextButton.ImageTextButtonStyle style = createPreviewStyle( ImageTextButton.ImageTextButtonStyle.class, styleData); widget = new ImageTextButton("", style); ((ImageTextButton) widget).setDisabled((boolean) previewProperties.get("disabled")); ((ImageTextButton) widget).setText((String) previewProperties.get("text")); widget.addListener(main.getHandListener()); } else if (clazz.equals(Label.class)) { LabelStyle style = createPreviewStyle(LabelStyle.class, styleData); widget = new Label("", style); ((Label) widget).setText((String) previewProperties.get("text")); } else if (clazz.equals(List.class)) { ListStyle style = createPreviewStyle(ListStyle.class, styleData); widget = new List(style); Array<String> items = new Array<>(((String) previewProperties.get("text")).split("\\n")); ((List) widget).setItems(items); widget.addListener(main.getHandListener()); } else if (clazz.equals(ProgressBar.class)) { ProgressBar.ProgressBarStyle style = createPreviewStyle(ProgressBar.ProgressBarStyle.class, styleData); widget = new ProgressBar((float) (double) previewProperties.get("minimum"), (float) (double) previewProperties.get("maximum"), (float) (double) previewProperties.get("increment"), (boolean) previewProperties.get("orientation"), style); ((ProgressBar) widget).setValue((float) (double) previewProperties.get("value")); ((ProgressBar) widget).setDisabled((boolean) previewProperties.get("disabled")); } else if (clazz.equals(ScrollPane.class)) { ScrollPaneStyle style = createPreviewStyle(ScrollPaneStyle.class, styleData); Label label = new Label("", getSkin()); widget = new ScrollPane(label, style); ((ScrollPane) widget) .setScrollbarsOnTop((boolean) previewProperties.get("scrollbarsOnTop")); ((ScrollPane) widget).setScrollBarPositions( (boolean) previewProperties.get("hScrollBarPosition"), (boolean) previewProperties.get("vScrollBarPosition")); ((ScrollPane) widget).setScrollingDisabled( (boolean) previewProperties.get("hScrollDisabled"), (boolean) previewProperties.get("vScrollDisabled")); ((ScrollPane) widget).setForceScroll((boolean) previewProperties.get("forceHscroll"), (boolean) previewProperties.get("forceVscroll")); ((ScrollPane) widget) .setVariableSizeKnobs((boolean) previewProperties.get("variableSizeKnobs")); ((ScrollPane) widget).setOverscroll((boolean) previewProperties.get("hOverscroll"), (boolean) previewProperties.get("vOverscroll")); ((ScrollPane) widget).setFadeScrollBars((boolean) previewProperties.get("fadeScroll")); ((ScrollPane) widget).setSmoothScrolling((boolean) previewProperties.get("smoothScroll")); ((ScrollPane) widget).setFlickScroll((boolean) previewProperties.get("flickScroll")); ((ScrollPane) widget).setClamp((boolean) previewProperties.get("clamp")); label.setText((String) previewProperties.get("text")); } else if (clazz.equals(SelectBox.class)) { SelectBox.SelectBoxStyle style = createPreviewStyle(SelectBox.SelectBoxStyle.class, styleData); widget = new SelectBox(style); ((SelectBox) widget).setDisabled((boolean) previewProperties.get("disabled")); Array<String> items = new Array<>(((String) previewProperties.get("text")).split("\\n")); ((SelectBox) widget).setItems(items); widget.addListener(main.getHandListener()); } else if (clazz.equals(Slider.class)) { Slider.SliderStyle style = createPreviewStyle(Slider.SliderStyle.class, styleData); widget = new Slider((float) (double) previewProperties.get("minimum"), (float) (double) previewProperties.get("maximum"), (float) (double) previewProperties.get("increment"), (boolean) previewProperties.get("orientation"), style); ((Slider) widget).setDisabled((boolean) previewProperties.get("disabled")); widget.addListener(main.getHandListener()); } else if (clazz.equals(SplitPane.class)) { SplitPane.SplitPaneStyle style = createPreviewStyle(SplitPane.SplitPaneStyle.class, styleData); Label label1 = new Label("", getSkin()); Label label2 = new Label("", getSkin()); widget = new SplitPane(label1, label2, (boolean) previewProperties.get("orientation"), style); label1.setText((String) previewProperties.get("text")); label2.setText((String) previewProperties.get("text")); if ((boolean) previewProperties.get("orientation")) { widget.addListener(vSplitPaneDragListener); widget.addListener(vSplitPaneInputListener); } else { widget.addListener(hSplitPaneDragListener); widget.addListener(hSplitPaneInputListener); } } else if (clazz.equals(TextButton.class)) { TextButtonStyle style = createPreviewStyle(TextButtonStyle.class, styleData); widget = new TextButton("", style); ((TextButton) widget).setDisabled((boolean) previewProperties.get("disabled")); ((TextButton) widget).setText((String) previewProperties.get("text")); widget.addListener(main.getHandListener()); } else if (clazz.equals(TextField.class)) { TextFieldStyle style = createPreviewStyle(TextFieldStyle.class, styleData); widget = new TextField("", style); ((TextField) widget).setFocusTraversal(false); ((TextField) widget).setDisabled((boolean) previewProperties.get("disabled")); ((TextField) widget).setPasswordMode((boolean) previewProperties.get("passwordMode")); ((TextField) widget).setAlignment((int) previewProperties.get("alignment")); ((TextField) widget).setText((String) previewProperties.get("text")); ((TextField) widget).setMessageText((String) previewProperties.get("message")); String string = (String) previewProperties.get("password"); if (string.length() > 0) { ((TextField) widget).setPasswordCharacter(string.charAt(0)); } widget.addListener(main.getIbeamListener()); } else if (clazz.equals(TextTooltip.class)) { TextTooltip.TextTooltipStyle style = createPreviewStyle(TextTooltip.TextTooltipStyle.class, styleData); TooltipManager manager = new TooltipManager(); manager.animations = false; manager.initialTime = 0.0f; manager.resetTime = 0.0f; manager.subsequentTime = 0.0f; manager.hideAll(); manager.instant(); TextTooltip toolTip = new TextTooltip((String) previewProperties.get("text"), manager, style); widget = new Label("Hover over me", getSkin()); widget.addListener(toolTip); } else if (clazz.equals(Touchpad.class)) { Touchpad.TouchpadStyle style = createPreviewStyle(Touchpad.TouchpadStyle.class, styleData); widget = new Touchpad(0, style); widget.addListener(main.getHandListener()); } else if (clazz.equals(Tree.class)) { Tree.TreeStyle style = createPreviewStyle(Tree.TreeStyle.class, styleData); widget = new Tree(style); String[] lines = { "this", "is", "a", "test" }; Tree.Node parentNode = null; for (String line : lines) { Label label = new Label(line, getSkin()); Tree.Node node = new Tree.Node(label); if (parentNode == null) { ((Tree) widget).add(node); } else { parentNode.add(node); } parentNode = node; } widget.addListener(main.getHandListener()); } else if (clazz.equals(Window.class)) { Window.WindowStyle style = createPreviewStyle(Window.WindowStyle.class, styleData); Label sampleText = new Label("", getSkin()); sampleText.setText((String) previewProperties.get("text")); widget = new Window((String) previewProperties.get("title"), style); ((Window) widget).add(sampleText); } if (widget != null) { switch ((int) previewProperties.get("size")) { case (0): previewTable.add(widget).size(10.0f); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (1): previewTable.add(widget); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (2): previewTable.add(widget).size(200.0f); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (3): previewTable.add(widget).growX(); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (4): previewTable.add(widget).growY(); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (5): previewTable.add(widget).grow(); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (6): Actor addWidget = widget; TextField widthField = new TextField("", getSkin()); TextField heightField = new TextField("", getSkin()); System.out.println("trigger"); Dialog dialog = new Dialog("Enter dimensions...", getSkin()) { @Override protected void result(Object object) { if ((boolean) object) { previewTable.add(addWidget).size(Integer.parseInt(widthField.getText()), Integer.parseInt(heightField.getText())); Array<String> items = new Array<>(DEFAULT_SIZES); items.add(widthField.getText() + "x" + heightField.getText()); previewProperties.put("sizeX", Integer.parseInt(widthField.getText())); previewProperties.put("sizeY", Integer.parseInt(heightField.getText())); previewSizeSelectBox.setItems(items); previewSizeSelectBox.setSelectedIndex(7); } else { previewSizeSelectBox.setSelectedIndex(1); } } }; dialog.getTitleTable().getCells().first().padLeft(5.0f); dialog.text("Enter the preview dimensions: "); dialog.getContentTable().getCells().first().pad(10.0f); dialog.getContentTable().row(); Table sizeTable = new Table(); sizeTable.add(widthField).padLeft(10.0f); sizeTable.add(new Label(" x ", getSkin())); sizeTable.add(heightField).padRight(10.0f); dialog.getContentTable().add(sizeTable); dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f); dialog.button("OK", true); dialog.button("Cancel", false); dialog.key(Input.Keys.ESCAPE, false); dialog.key(Input.Keys.ENTER, true); dialog.show(stage); stage.setKeyboardFocus(widthField); break; case (7): previewTable.add(widget).size((int) previewProperties.get("sizeX"), (int) previewProperties.get("sizeY")); break; } } } } } }
From source file:com.ridiculousRPG.ui.ActorsOnStageService.java
License:Apache License
private void showInfo(final Skin skin, String info) { try {/* www. j av a 2 s . com*/ final Window w = new Window("", skin); w.setTouchable(Touchable.disabled); w.getColor().a = .1f; w.addAction(Actions.sequence(Actions.fadeIn(fadeInfoTime), Actions.delay(displayInfoTime, Actions.fadeOut(fadeInfoTime)), setFadeState, Actions.removeActor())); w.add(info); w.pack(); center(w); synchronized (syncObj) { super.addActor(w); fadingOut = true; } } catch (Exception e) { GameBase.$error("StageService.showInfo", "Error assigning info box to stage", e); } }
From source file:com.strongjoshua.console.GUIConsole.java
License:Apache License
/** Creates the console.<br> * <b>***IMPORTANT***</b> Call {@link Console#dispose()} to make your {@link InputProcessor} the default processor again (this * console uses a multiplexer to circumvent it). * @param skin Uses skins for Label, TextField, and Table. Skin <b>must</b> contain a font called 'default-font'. * @param useMultiplexer If internal multiplexer should be used * @see Console#dispose() *///from w w w . j ava 2 s . com public GUIConsole(Skin skin, boolean useMultiplexer) { stage = new Stage(); display = new ConsoleDisplay(skin); commandHistory = new CommandHistory(); commandCompleter = new CommandCompleter(); logToSystem = false; usesMultiplexer = useMultiplexer; if (useMultiplexer) { resetInputProcessing(); } display.pad(4); display.padTop(22); display.setFillParent(true); consoleWindow = new Window("Console", skin); consoleWindow.setMovable(true); consoleWindow.setResizable(true); consoleWindow.setKeepWithinStage(true); consoleWindow.addActor(display); consoleWindow.setTouchable(Touchable.disabled); stage.addActor(consoleWindow); stage.setKeyboardFocus(display); setSizePercent(50, 50); setPositionPercent(50, 50); }
From source file:org.pidome.client.photoframe.screens.loginloader.LoginPreloadProgressScreen.java
private void createLoginWindow() { loginLabel = new Label("Login name", skin); loginField = new TextField("", skin); passLabel = new Label("Password", skin); passField = new TextField("", skin); passField.setPasswordCharacter('*'); passField.setPasswordMode(true);/*from ww w. j a v a2 s . c om*/ loginWindow = new Window("Login data", skin); loginWindow.row().fill().expandX().left(); loginWindow.add(loginLabel).width(200).padRight(75); loginWindow.add(loginField).width(300); loginWindow.row().left(); loginWindow.add(passLabel).width(200); loginWindow.add(passField).width(300); try { loginField.setText(clientSystem.getLocalSettings().get("user.login")); } catch (UnknownPCCSettingException ex) { Logger.getLogger(LoginPreloadProgressScreen.class.getName()).log(Level.INFO, "Fresh?", ex); } TextButton loginButton = new TextButton("Login", skin); loginButton.getStyle().font = defaultFont; TextButton exitButton = new TextButton("Exit", skin); exitButton.getStyle().font = defaultFont; loginWindow.row().right(); loginWindow.add(exitButton).left(); loginWindow.add(loginButton).right(); loginButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { showLoginPopup(false); setMessage("Logging in"); new Thread(() -> { clientSystem.getClient().login(loginField.getText(), passField.getText()); }).start(); } }); exitButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { if (clientSystem.getClient().isloggedIn()) { clientSystem.getClient().logout(); } Gdx.app.exit(); } }); loginWindow.pack(); loginWindow.setPosition(ScreenDisplay.getStageCenterX() - (loginWindow.getWidth() / 2), ScreenDisplay.getStageCenterY() + (progressbarHeight * 2)); showLoginPopup(false); stage.addActor(loginWindow); }