ventanas ventana una texto secundarias modal emergente desde caja botones boton abrir java javafx javafx-2 javafx-8 scenebuilder

una - ventana emergente javafx



Cómo crear ventanas emergentes en javafx (4)

Esta pregunta ya tiene una respuesta aquí:

Quiero crear ventanas emergentes en la aplicación javafx. Dame una idea.

cuando hago clic en el botón de verificación, abro las ventanas emergentes. ¿cómo hacer?


¿Has analizado el control ControlsFx Popover ?

import org.controlsfx.control.PopOver; import org.controlsfx.control.PopOver.ArrowLocation; private PopOver item; final Scene scene = addItemButton.getScene(); final Point2D windowCoord = new Point2D(scene.getWindow() .getX(), scene.getWindow().getY()); final Point2D sceneCoord = new Point2D(scene.getX(), scene. getY()); final Point2D nodeCoord = addItemButton.localToScene(0.0, 0.0); final double clickX = Math.round(windowCoord.getX() + sceneCoord.getY() + nodeCoord.getX()); final double clickY = Math.round(windowCoord.getY() + sceneCoord.getY() + nodeCoord.getY()); item.setContentNode(addItemScreen); item.setArrowLocation(ArrowLocation.BOTTOM_LEFT); item.setCornerRadius(4); item.setDetachedTitle("Add New Item"); item.show(addItemButton.getParent(), clickX, clickY);

Esto es solo un ejemplo, pero un PopOver parece que podría lograr lo que quieres. Consulte la documentación para obtener más información.

Nota importante: ControlsFX solo funcionará en JavaFX 8.0 b118 o posterior.



Puede crear una nueva Stage , agregar sus controles o si necesita la ventana POPUP como cuadro de Dialog , entonces puede considerar usar DialogsFX o ControlsFX (Requiere JavaFX8)

Para crear una nueva etapa, puede usar el siguiente fragmento

@Override public void start(final Stage primaryStage) { Button btn = new Button(); btn.setText("Open Dialog"); btn.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { final Stage dialog = new Stage(); dialog.initModality(Modality.APPLICATION_MODAL); dialog.initOwner(primaryStage); VBox dialogVbox = new VBox(20); dialogVbox.getChildren().add(new Text("This is a Dialog")); Scene dialogScene = new Scene(dialogVbox, 300, 200); dialog.setScene(dialogScene); dialog.show(); } }); }

Si no desea que sea modal (bloquee otras ventanas), use:

dialog.initModality(Modality.NONE);


La clase Popup podría ser mejor que la clase Stage, dependiendo de lo que quieras. El escenario es modal (no puede hacer clic en otra cosa en su aplicación) o desaparece si hace clic en otra parte de la aplicación (porque es una ventana separada). Popup permanece en la parte superior, pero no es modal.

Vea este ejemplo de ventana emergente .