Example usage for javafx.scene.layout GridPane GridPane

List of usage examples for javafx.scene.layout GridPane GridPane

Introduction

In this page you can find the example usage for javafx.scene.layout GridPane GridPane.

Prototype

public GridPane() 

Source Link

Document

Creates a GridPane layout with hgap/vgap = 0 and TOP_LEFT alignment.

Usage

From source file:pah9qdmoviereviews.MovieReviewsFXMLController.java

public void displayExceptionAlert(Exception ex) {
    Alert alert = new Alert(Alert.AlertType.ERROR);
    alert.setTitle("Exception");
    alert.setHeaderText("An Exception Occurred!");
    alert.setContentText(/*ww w. ja v  a 2  s  . c  o m*/
            "An exception occurred.  View the exception information below by clicking Show Details.");

    // Create expandable Exception.
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    ex.printStackTrace(pw);
    String exceptionText = sw.toString();

    Label label = new Label("The exception stacktrace was:");

    TextArea textArea = new TextArea(exceptionText);
    textArea.setEditable(false);
    textArea.setWrapText(true);

    textArea.setMaxWidth(Double.MAX_VALUE);
    textArea.setMaxHeight(Double.MAX_VALUE);
    GridPane.setVgrow(textArea, Priority.ALWAYS);
    GridPane.setHgrow(textArea, Priority.ALWAYS);

    GridPane expContent = new GridPane();
    expContent.setMaxWidth(Double.MAX_VALUE);
    expContent.add(label, 0, 0);
    expContent.add(textArea, 0, 1);

    // Set expandable Exception into the dialog pane.
    alert.getDialogPane().setExpandableContent(expContent);

    alert.showAndWait();
}

From source file:AudioPlayer3.java

@Override
protected Node initView() {
    final Button openButton = createOpenButton();
    controlPanel = createControlPanel();
    volumeSlider = createSlider("volumeSlider");
    statusLabel = createLabel("Buffering", "statusDisplay");
    positionSlider = createSlider("positionSlider");
    totalDurationLabel = createLabel("00:00", "mediaText");
    currentTimeLabel = createLabel("00:00", "mediaText");

    positionSlider.valueChangingProperty().addListener(new PositionListener());

    final ImageView volLow = new ImageView();
    volLow.setId("volumeLow");

    final ImageView volHigh = new ImageView();
    volHigh.setId("volumeHigh");

    final GridPane gp = new GridPane();
    gp.setHgap(1);/*from  w  w w .  j  a v a2s .  co  m*/
    gp.setVgap(1);
    gp.setPadding(new Insets(10));

    final ColumnConstraints buttonCol = new ColumnConstraints(100);
    final ColumnConstraints spacerCol = new ColumnConstraints(40, 80, 80);
    final ColumnConstraints middleCol = new ColumnConstraints();
    middleCol.setHgrow(Priority.ALWAYS);

    gp.getColumnConstraints().addAll(buttonCol, spacerCol, middleCol, spacerCol, buttonCol);

    GridPane.setValignment(openButton, VPos.BOTTOM);
    GridPane.setHalignment(volHigh, HPos.RIGHT);
    GridPane.setValignment(volumeSlider, VPos.TOP);
    GridPane.setHalignment(statusLabel, HPos.RIGHT);
    GridPane.setValignment(statusLabel, VPos.TOP);
    GridPane.setHalignment(currentTimeLabel, HPos.RIGHT);

    gp.add(openButton, 0, 0, 1, 3);
    gp.add(volLow, 1, 0);
    gp.add(volHigh, 1, 0);
    gp.add(volumeSlider, 1, 1);
    gp.add(controlPanel, 2, 0, 1, 2);
    gp.add(statusLabel, 3, 1);
    gp.add(currentTimeLabel, 1, 2);
    gp.add(positionSlider, 2, 2);
    gp.add(totalDurationLabel, 3, 2);

    return gp;
}

From source file:dsfixgui.view.DSPWPane.java

private void initialize() {

    //Basic layout
    this.setFitToWidth(true);

    spacerColumn = new ColumnConstraints();
    spacerColumn.setFillWidth(true);//from   w w w .ja va 2s.  c  o m
    spacerColumn.setPercentWidth(3.0);
    primaryColumn = new ColumnConstraints();
    primaryColumn.setFillWidth(true);
    primaryColumn.setPercentWidth(95.0);
    primaryPane = new GridPane();
    primaryPane.getColumnConstraints().addAll(spacerColumn, primaryColumn);
    primaryVBox = new VBox();
    primaryVBox.getStyleClass().add("spacing_15");
    primaryPane.add(primaryVBox, 1, 0);
    titleLabel = new Label(DSPW_SHORT.toUpperCase() + " " + SETTINGS.toUpperCase());
    titleLabel.getStyleClass().add("settings_title");
    titleBar = new HBox();
    titleBar.setAlignment(Pos.CENTER);
    titleBar.getChildren().add(titleLabel);
    restoreDefaultsBar = new HBox();
    restoreDefaultsBar.setAlignment(Pos.CENTER);
    restoreDefaultsBar.setSpacing(5.0);
    applySettingsButton = new Button(APPLY_SETTINGS);
    restoreDefaultsButton = new Button(RESTORE_DEFAULTS);
    applySettingsButton.getStyleClass().add("translate_y_4");
    restoreDefaultsButton.getStyleClass().add("translate_y_4");
    restoreDefaultsBar.getChildren().addAll(applySettingsButton, restoreDefaultsButton);
    spacerHBox = new HBox();
    spacerHBox.setMinHeight(10.0);
    bottomSpacerHBox = new HBox();
    bottomSpacerHBox.setMinHeight(10.0);

    /////////////////////SETTINGS PANES/////////////////////
    //
    //
    //Version Banner
    versionBannerPane = new FlowPane();
    versionBannerPane.getStyleClass().add("settings_pane");
    versionBannerLabel = new Label(VERSION_LABEL);
    versionBannerLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    versionBannerLabel.setTooltip(new Tooltip(VERSION_TT));
    versionBannerChoice = new ToggleGroup();
    versionBannerOn = new RadioButton(ON_OFF[0] + "   ");
    versionBannerOn.setToggleGroup(versionBannerChoice);
    versionBannerOff = new RadioButton(ON_OFF[1]);
    versionBannerOff.setToggleGroup(versionBannerChoice);
    if (config.ShowVersionBanner.toString().equals(TRUE_FALSE[0])) {
        versionBannerOn.setSelected(true);
    } else {
        versionBannerOff.setSelected(true);
    }
    versionBannerPane.getChildren().addAll(versionBannerLabel, versionBannerOn, versionBannerOff);
    //
    //Toggle Overlay
    overlayPane = new FlowPane();
    overlayPane.getStyleClass().add("settings_pane");
    overlayLabel = new Label(OVERLAY_LABEL);
    overlayLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    overlayLabel.setTooltip(new Tooltip(OVERLAY_TT));
    overlayChoice = new ToggleGroup();
    overlayOn = new RadioButton(ON_OFF[0] + "   ");
    overlayOn.setToggleGroup(overlayChoice);
    overlayOff = new RadioButton(ON_OFF[1]);
    overlayOff.setToggleGroup(overlayChoice);
    if (config.ShowOverlay.toString().equals(TRUE_FALSE[0])) {
        overlayOn.setSelected(true);
    } else {
        overlayOff.setSelected(true);
    }
    overlayPane.getChildren().addAll(overlayLabel, overlayOn, overlayOff);
    //
    //Text Alignment
    textAlignmentPane = new FlowPane();
    textAlignmentPane.getStyleClass().add("settings_pane");
    textAlignmentLabel = new Label(TEXT_ALIGNMENT_LABEL);
    textAlignmentLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    textAlignmentLabel.setTooltip(new Tooltip(TEXT_ALIGNMENT_TT));
    textAlignmentChoice = new ToggleGroup();
    textAlignmentLeft = new RadioButton(DSPW_TEXT_ALIGNMENT_OPTIONS[0] + "   ");
    textAlignmentLeft.setToggleGroup(textAlignmentChoice);
    textAlignmentCenter = new RadioButton(DSPW_TEXT_ALIGNMENT_OPTIONS[1]);
    textAlignmentCenter.setToggleGroup(textAlignmentChoice);
    textAlignmentRight = new RadioButton(DSPW_TEXT_ALIGNMENT_OPTIONS[2]);
    textAlignmentRight.setToggleGroup(textAlignmentChoice);
    if (config.TextAlignment.toString().equals(DSPW_TEXT_ALIGNMENT_OPTIONS[0])) {
        textAlignmentLeft.setSelected(true);
    } else if (config.TextAlignment.toString().equals(DSPW_TEXT_ALIGNMENT_OPTIONS[1])) {
        textAlignmentCenter.setSelected(true);
    } else {
        textAlignmentRight.setSelected(true);
    }
    textAlignmentPane.getChildren().addAll(textAlignmentLabel, textAlignmentLeft, textAlignmentCenter,
            textAlignmentRight);
    //
    //Invasion Notification Sound
    invasionNotifPane = new FlowPane();
    invasionNotifPane.getStyleClass().add("settings_pane");
    invasionNotifLabel = new Label(INVASION_NOTIF_LABEL);
    invasionNotifLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    invasionNotifLabel.setTooltip(new Tooltip(INVASION_NOTIF_TT));
    invasionNotifChoice = new ToggleGroup();
    invasionNotifOn = new RadioButton(ON_OFF[0] + "   ");
    invasionNotifOn.setToggleGroup(invasionNotifChoice);
    invasionNotifOff = new RadioButton(ON_OFF[1]);
    invasionNotifOff.setToggleGroup(invasionNotifChoice);
    if (config.InvasionSoundNotification.toString().equals(TRUE_FALSE[0])) {
        invasionNotifOn.setSelected(true);
    } else {
        invasionNotifOff.setSelected(true);
    }
    invasionNotifPane.getChildren().addAll(invasionNotifLabel, invasionNotifOn, invasionNotifOff);
    //
    //Cheater Notification Sound
    cheaterNotifPane = new FlowPane();
    cheaterNotifPane.getStyleClass().add("settings_pane");
    cheaterNotifLabel = new Label(CHEATER_NOTIF_LABEL);
    cheaterNotifLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    cheaterNotifLabel.setTooltip(new Tooltip(CHEATER_NOTIF_TT));
    cheaterNotifChoice = new ToggleGroup();
    cheaterNotifOn = new RadioButton(ON_OFF[0] + "   ");
    cheaterNotifOn.setToggleGroup(cheaterNotifChoice);
    cheaterNotifOff = new RadioButton(ON_OFF[1]);
    cheaterNotifOff.setToggleGroup(cheaterNotifChoice);
    if (config.CheaterSoundNotification.toString().equals(TRUE_FALSE[0])) {
        cheaterNotifOn.setSelected(true);
    } else {
        cheaterNotifOff.setSelected(true);
    }
    cheaterNotifPane.getChildren().addAll(cheaterNotifLabel, cheaterNotifOn, cheaterNotifOff);
    //
    //Block Arena Freeze
    blockArenaFreezePane = new FlowPane();
    blockArenaFreezePane.getStyleClass().add("settings_pane");
    blockArenaFreezeLabel = new Label(BLOCK_ARENA_FREEZE_LABEL);
    blockArenaFreezeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    blockArenaFreezeLabel.setTooltip(new Tooltip(BLOCK_ARENA_FREEZE_TT));
    blockArenaFreezeChoice = new ToggleGroup();
    blockArenaFreezeOn = new RadioButton(BLOCK_FREEZE_CHOICES[0] + "   ");
    blockArenaFreezeOn.setToggleGroup(blockArenaFreezeChoice);
    blockArenaFreezeOff = new RadioButton(BLOCK_FREEZE_CHOICES[1]);
    blockArenaFreezeOff.setToggleGroup(blockArenaFreezeChoice);
    if (config.BlockArenaFreeze.toString().equals(TRUE_FALSE[0])) {
        blockArenaFreezeOn.setSelected(true);
    } else {
        blockArenaFreezeOff.setSelected(true);
    }
    blockArenaFreezePane.getChildren().addAll(blockArenaFreezeLabel, blockArenaFreezeOn, blockArenaFreezeOff);
    //
    //Show Node Count
    nodeCountPane = new FlowPane();
    nodeCountPane.getStyleClass().add("settings_pane");
    nodeCountLabel = new Label(NODE_COUNT_LABEL);
    nodeCountLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    nodeCountLabel.setTooltip(new Tooltip(NODE_COUNT_TT));
    nodeCountChoice = new ToggleGroup();
    nodeCountOn = new RadioButton(ON_OFF[0] + "   ");
    nodeCountOn.setToggleGroup(nodeCountChoice);
    nodeCountOff = new RadioButton(ON_OFF[1]);
    nodeCountOff.setToggleGroup(nodeCountChoice);
    if (config.ShowNodeDbCount.toString().equals(TRUE_FALSE[0])) {
        nodeCountOn.setSelected(true);
    } else {
        nodeCountOff.setSelected(true);
    }
    nodeCountPane.getChildren().addAll(nodeCountLabel, nodeCountOn, nodeCountOff);
    //
    //Increase Node Limit
    increaseNodesPane = new FlowPane();
    increaseNodesPane.getStyleClass().add("settings_pane");
    increaseNodesLabel = new Label(INCREASE_NODES_LABEL);
    increaseNodesLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    increaseNodesLabel.setTooltip(new Tooltip(INCREASE_NODES_TT));
    increaseNodesChoice = new ToggleGroup();
    increaseNodesOn = new RadioButton(ON_OFF[0] + "   ");
    increaseNodesOn.setToggleGroup(increaseNodesChoice);
    increaseNodesOff = new RadioButton(ON_OFF[1]);
    increaseNodesOff.setToggleGroup(increaseNodesChoice);
    if (config.IncreaseNodeDbLimit.toString().equals(TRUE_FALSE[0])) {
        increaseNodesOn.setSelected(true);
    } else {
        increaseNodesOff.setSelected(true);
    }
    increaseNodesPane.getChildren().addAll(increaseNodesLabel, increaseNodesOn, increaseNodesOff);
    //
    //Font Size
    fontSizePane = new FlowPane();
    fontSizePane.getStyleClass().add("settings_pane");
    fontSizeLabel = new Label(FONT_SIZE_LABEL + " ");
    fontSizeLabel.setTooltip(new Tooltip(FONT_SIZE_TT));
    fontSizeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    fontSizeField = new TextField("" + config.FontSize.toString());
    fontSizeField.getStyleClass().add("settings_text_field");
    fontSizeField.setTooltip(new Tooltip(FONT_SIZE_FIELD_TT));
    fontSizePane.getChildren().addAll(fontSizeLabel, fontSizeField);
    //
    //Toggle Date
    datePane = new FlowPane();
    datePane.getStyleClass().add("settings_pane");
    dateLabel = new Label(DATE_LABEL);
    dateLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dateLabel.setTooltip(new Tooltip(DATE_TT));
    dateChoice = new ToggleGroup();
    dateOn = new RadioButton(ON_OFF[0] + "   ");
    dateOn.setToggleGroup(dateChoice);
    dateOff = new RadioButton(ON_OFF[1]);
    dateOff.setToggleGroup(dateChoice);
    if (config.DisplayDate.toString().equals(TRUE_FALSE[0])) {
        dateOn.setSelected(true);
    } else {
        dateOff.setSelected(true);
    }
    datePane.getChildren().addAll(dateLabel, dateOn, dateOff);
    //
    //Toggle Time
    timePane = new FlowPane();
    timePane.getStyleClass().add("settings_pane");
    timeLabel = new Label(TIME_LABEL);
    timeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    timeLabel.setTooltip(new Tooltip(TIME_TT));
    timeChoice = new ToggleGroup();
    timeOn = new RadioButton(ON_OFF[0] + "   ");
    timeOn.setToggleGroup(timeChoice);
    timeOff = new RadioButton(ON_OFF[1]);
    timeOff.setToggleGroup(timeChoice);
    if (config.DisplayClock.toString().equals(TRUE_FALSE[0])) {
        timeOn.setSelected(true);
    } else {
        timeOff.setSelected(true);
    }
    timePane.getChildren().addAll(timeLabel, timeOn, timeOff);
    //
    //Check for Updates
    updatePane = new FlowPane();
    updatePane.getStyleClass().add("settings_pane");
    updateLabel = new Label(UPDATE_LABEL);
    updateLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    updateLabel.setTooltip(new Tooltip(UPDATE_TT));
    updateChoice = new ToggleGroup();
    updateOn = new RadioButton(ON_OFF[0] + "   ");
    updateOn.setToggleGroup(updateChoice);
    updateOff = new RadioButton(ON_OFF[1]);
    updateOff.setToggleGroup(updateChoice);
    if (config.CheckForUpdates.toString().equals(TRUE_FALSE[0])) {
        updateOn.setSelected(true);
    } else {
        updateOff.setSelected(true);
    }
    updatePane.getChildren().addAll(updateLabel, updateOn, updateOff);
    //
    //DLL Chaining
    dllChainPane = new FlowPane();
    dllChainPane.getStyleClass().add("settings_pane");
    dllChainLabel = new Label(DLL_CHAIN_LABEL + " ");
    dllChainLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dllChainLabel.setTooltip(new Tooltip(DSPW_DLL_CHAIN_TT));
    dllChainField = new TextField();
    dllChainField.setEditable(false);
    dllChainButton = new Button("...");
    dllChainButton.setTooltip(new Tooltip(DLL_CHAIN_TOOLTIP));
    noChainButton = new Button(NO_CHAIN_BT);
    if (config.d3d9dllWrapper.toString().equals(NONE)) {
        noChainButton.setDisable(true);
        dllChainField.setStyle("-fx-text-fill: gray;");
    } else {
        noChainButton.setDisable(false);
    }
    dllChainField.setText(config.d3d9dllWrapper.toString());
    dllChainPane.getChildren().addAll(dllChainLabel, dllChainField, dllChainButton, noChainButton);
    //
    //
    //
    //////////////////////////////////
    ///////////Key Bindings///////////
    //////////////////////////////////
    //
    //
    //Keybinds Parent Label
    keybindsPane = new FlowPane();
    keybindsPane.getStyleClass().add("settings_pane");
    keybindsLabel = new Label(KEYBINDS_LABEL);
    keybindsLabel.getStyleClass().addAll("bold_text", "font_14_pt");
    keybindsPane.getChildren().add(keybindsLabel);
    //
    //Ban Phantom
    banPane = new FlowPane();
    banPane.getStyleClass().add("settings_pane");
    banLabel = new Label(BAN_LABEL + "  ");
    banLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    banPicker = new ComboBox(keybinds);
    banPicker.setValue(keybinds.get(keybindsHex.indexOf(config.key_BanPhantom.toString())));
    banPane.getChildren().addAll(banLabel, banPicker);
    //
    //Ignore Phantom
    ignorePane = new FlowPane();
    ignorePane.getStyleClass().add("settings_pane");
    ignoreLabel = new Label(IGNORE_LABEL + "  ");
    ignoreLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    ignorePicker = new ComboBox(keybinds);
    ignorePicker.setValue(keybinds.get(keybindsHex.indexOf(config.key_IgnorePhantom.toString())));
    ignorePane.getChildren().addAll(ignoreLabel, ignorePicker);
    //
    //Toggle Overlay
    toggleOverlayPane = new FlowPane();
    toggleOverlayPane.getStyleClass().add("settings_pane");
    toggleOverlayLabel = new Label(TOGGLE_OVERLAY_LABEL + "  ");
    toggleOverlayLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    toggleOverlayPicker = new ComboBox(keybinds);
    toggleOverlayPicker.setValue(keybinds.get(keybindsHex.indexOf(config.key_HideOverlay.toString())));
    toggleOverlayPane.getChildren().addAll(toggleOverlayLabel, toggleOverlayPicker);
    //
    //About Dark Souls PvP Watchdog
    aboutPane = new FlowPane();
    aboutPane.getStyleClass().add("settings_pane");
    aboutLabel = new Label(ABOUT_DSPW_LABEL + "  ");
    aboutLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    aboutPicker = new ComboBox(keybinds);
    aboutPicker.setValue(keybinds.get(keybindsHex.indexOf(config.key_AboutDSPW.toString())));
    aboutPane.getChildren().addAll(aboutLabel, aboutPicker);

    primaryVBox.getChildren().addAll(titleBar, restoreDefaultsBar, spacerHBox, versionBannerPane, overlayPane,
            textAlignmentPane, invasionNotifPane, cheaterNotifPane, blockArenaFreezePane, nodeCountPane,
            increaseNodesPane, fontSizePane, datePane, timePane, updatePane, dllChainPane, keybindsPane,
            banPane, ignorePane, toggleOverlayPane, aboutPane, bottomSpacerHBox);

    initializeEventHandlers();

    this.setContent(primaryPane);
}

From source file:de.ifsr.adam.ImageGenerator.java

/**
 * Puts the charts in chartList into GridPanes as specified by chartsPerColumn and chartsPerRow.
 *
 * @param chartList The ArrayList with the charts.
 * @param chartsPerColumn Number of charts that are in one column.
 * @param chartsPerRow Number of charts that are in one row.
 * @return The list of GridPanes that were generated.
 *//*from  w  w  w  .  j a  v  a2 s.  c  o m*/
private ArrayList<GridPane> makeLayout(ArrayList<Chart> chartList, Integer chartsPerColumn,
        Integer chartsPerRow) {
    ArrayList<GridPane> gridPaneList = new ArrayList<>();
    GridPane gridPane = new GridPane();
    int rowIndex = 0, columnIndex = 0;
    Iterator<Chart> iter = chartList.iterator();

    //int i = 0;//TODO: Remove 
    while (iter.hasNext()) {
        //System.out.println("Run: "+ i + " columnIndex: " + columnIndex + " rowIndex: " + rowIndex);//TODO: Remove 
        //i++;//TODO: Remove 

        Chart chart = iter.next();
        calculateChartSize(chart, chartsPerColumn, chartsPerRow);
        gridPane.add(chart, columnIndex, rowIndex);

        columnIndex++;

        //Case: Row is full go to next row
        if (columnIndex >= chartsPerRow) {
            columnIndex = 0;
            rowIndex++;
        }

        //Case: Page is full start a new GridPane
        if (rowIndex >= chartsPerColumn) {
            //The Layout for the gridPane
            gridPane.setHgap(imageWidth * 0.10);
            gridPane.setAlignment(Pos.CENTER);
            gridPane.setPrefWidth(imageWidth);
            gridPane.setPrefHeight(imageHeight);

            gridPaneList.add(gridPane);
            gridPane = new GridPane();
            rowIndex = 0;
        }
    }

    //This needs to be check, or the last page can be empty
    if (rowIndex != 0 || columnIndex != 0) {
        gridPaneList.add(gridPane);
    }

    return gridPaneList;
}

From source file:fruitproject.FruitProject.java

public void third(final String pfname) {
    final Stage st = new Stage();
    GridPane grid = new GridPane();
    grid.setAlignment(Pos.CENTER);//from   w w w  . java2s.  c o  m
    grid.setHgap(10);
    grid.setVgap(10);
    grid.setPadding(new Insets(25, 25, 25, 25));

    Label label1 = new Label("New Fruit");
    grid.add(label1, 1, 0);
    final TextField txtName = new TextField();
    grid.add(txtName, 1, 1);
    final TextField txtAmount = new TextField();
    grid.add(txtAmount, 1, 2);
    Button btn = new Button();
    btn.setText("OK");
    grid.add(btn, 1, 3);
    btn.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            //System.out.println("Hello World!");
            addPairs.add(txtName.getText());
            addPairs.add(txtAmount.getText());
            st.close();
            second(pfname);
        }
    });

    Scene scene = new Scene(grid, 500, 500);
    st.setScene(scene);
    st.show();

}

From source file:dsfixgui.view.DSFGraphicsPane.java

private void initialize() {

    //Basic layout
    this.setFitToWidth(true);

    spacerColumn = new ColumnConstraints();
    spacerColumn.setFillWidth(true);/*w  w  w  .  j a  v a 2  s  .c o m*/
    spacerColumn.setPercentWidth(3.0);
    primaryColumn = new ColumnConstraints();
    primaryColumn.setFillWidth(true);
    primaryColumn.setPercentWidth(95.0);
    primaryPane = new GridPane();
    primaryPane.getColumnConstraints().addAll(spacerColumn, primaryColumn);
    primaryVBox = new VBox();
    primaryVBox.getStyleClass().add("spacing_15");
    primaryPane.add(primaryVBox, 1, 0);
    titleLabel = new Label(GRAPHICS.toUpperCase() + " " + SETTINGS.toUpperCase());
    titleLabel.getStyleClass().add("settings_title");
    titleBar = new HBox();
    titleBar.setAlignment(Pos.CENTER);
    titleBar.getChildren().add(titleLabel);
    restoreDefaultsBar = new HBox();
    restoreDefaultsBar.setAlignment(Pos.CENTER);
    restoreDefaultsBar.setSpacing(5.0);
    applySettingsButton = new Button(APPLY_SETTINGS);
    restoreDefaultsButton = new Button(RESTORE_DEFAULTS);
    applySettingsButton.getStyleClass().add("translate_y_4");
    restoreDefaultsButton.getStyleClass().add("translate_y_4");
    restoreDefaultsBar.getChildren().addAll(applySettingsButton, restoreDefaultsButton);
    spacerHBox = new HBox();
    spacerHBox.setMinHeight(10.0);
    bottomSpacerHBox = new HBox();
    bottomSpacerHBox.setMinHeight(10.0);

    /////////////////////SETTINGS PANES/////////////////////
    //
    //
    //
    //MAIN GRAPHICS OPTIONS
    //
    //Render resolution
    renderResPane = new FlowPane();
    renderResPane.getStyleClass().add("settings_pane");
    renderResLabel = new Label(RENDER_RES_LABEL + "   ");
    renderResLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    renderResLabel.setTooltip(new Tooltip(RENDER_RES_TT));
    renderWidthLabel = new Label(WIDTH_HEIGHT[0] + ":");
    renderWidthField = new TextField("");
    renderWidthField.appendText("" + config.getRenderWidth());
    renderWidthField.getStyleClass().add("settings_text_field");
    renderHeightLabel = new Label("  " + WIDTH_HEIGHT[1] + ":");
    renderHeightField = new TextField("");
    renderHeightField.appendText("" + config.getRenderHeight());
    renderHeightField.getStyleClass().add("settings_text_field");
    setWindowsRenderRes = new Button(USE_WINDOWS_RES);
    renderResPane.getChildren().addAll(renderResLabel, renderWidthLabel, renderWidthField, renderHeightLabel,
            renderHeightField, setWindowsRenderRes);
    //
    //Present Resolution
    presentResPane = new FlowPane();
    presentResPane.getStyleClass().add("settings_pane");
    presentResLabel = new Label(PRESENT_RES_LABEL + "  ");
    presentResLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    presentResLabel.setTooltip(new Tooltip(PRESENT_RES_TT));
    presentResSpacer = new HBox();
    presentResSpacer.setMinWidth(3);
    presentWidthLabel = new Label(WIDTH_HEIGHT[0] + ":");
    presentWidthField = new TextField("");
    presentWidthField.appendText(config.getPresentWidth() + "");
    presentRes[0] = config.getPresentWidth() + "";
    presentWidthField.getStyleClass().add("settings_text_field");
    presentHeightLabel = new Label("  " + WIDTH_HEIGHT[1] + ":");
    presentHeightField = new TextField("");
    presentHeightField.appendText(config.getPresentHeight() + "");
    presentRes[1] = config.getPresentHeight() + "";
    presentHeightField.getStyleClass().add("settings_text_field");
    setWindowsPresentRes = new Button(USE_WINDOWS_RES);
    presentResSpacer2 = new HBox();
    presentResSpacer2.setMinWidth(5);
    presentResChoice = new ToggleGroup();
    usePresentRes = new RadioButton(USE_PRESENT_RES + "   ");
    usePresentRes.setToggleGroup(presentResChoice);
    dontUsePresentRes = new RadioButton(DONT_USE_PRES_RES);
    dontUsePresentRes.setToggleGroup(presentResChoice);
    //Check if presentRes is off
    if (config.getPresentWidth() == 0 && config.getPresentHeight() == 0) {
        presentWidthField.setDisable(true);
        presentHeightField.setDisable(true);
        setWindowsPresentRes.setDisable(true);
        dontUsePresentRes.setSelected(true);
    } else {
        presentWidthField.setDisable(false);
        presentWidthField.setText("" + config.getPresentWidth());
        presentHeightField.setDisable(false);
        presentHeightField.setText("" + config.getPresentHeight());
        setWindowsPresentRes.setDisable(false);
        usePresentRes.setSelected(true);
        recheckTextInput(presentWidthField);
        recheckTextInput(presentHeightField);
    }
    presentResPane.getChildren().addAll(presentResLabel, presentResSpacer, presentWidthLabel, presentWidthField,
            presentHeightLabel, presentHeightField, setWindowsPresentRes, presentResSpacer2, usePresentRes,
            dontUsePresentRes);
    //
    //
    //
    //ANTIALIASING OPTIONS
    //
    //AA Quality
    aaQualityPane = new FlowPane();
    aaQualityPane.getStyleClass().add("settings_pane");
    aaQualityLabel = new Label(AA_QUALITY_LABEL + "  ");
    aaQualityLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    aaQualityLabel.setTooltip(new Tooltip(AA_QUALITY_TT));
    aaQualityPicker = new ComboBox(FXCollections.observableArrayList(AAQUALITIES));
    aaQualityPicker.setValue(AAQUALITIES[config.aaQuality.get()]);
    aaQualityPane.getChildren().addAll(aaQualityLabel, aaQualityPicker);
    //
    //AA Type
    aaTypePane = new FlowPane();
    aaTypePane.getStyleClass().add("settings_pane");
    aaTypeLabel = new Label(AA_TYPE_LABEL + "  ");
    aaTypeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    aaTypeLabel.setTooltip(new Tooltip(AA_TYPE_TT));
    aaTypePicker = new ComboBox(FXCollections.observableArrayList(AATYPES));
    aaTypePicker.setValue(config.aaType.toString());
    if (config.aaQuality.get() == 0) {
        aaTypePicker.setDisable(true);
    }
    aaTypePane.getChildren().addAll(aaTypeLabel, aaTypePicker);
    //
    //
    //
    //AMBIENT OCCLUSION OPTIONS
    //
    //SSAO Strength
    ssaoStrengthPane = new FlowPane();
    ssaoStrengthPane.getStyleClass().add("settings_pane");
    ssaoStrengthLabel = new Label(SSAO_STRENGTH_LABEL + "  ");
    ssaoStrengthLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    ssaoStrengthLabel.setTooltip(new Tooltip(SSAO_STRENGTH_TT));
    ssaoStrengthPicker = new ComboBox(FXCollections.observableArrayList(SSAOSTRENGTHS));
    ssaoStrengthPicker.setValue(SSAOSTRENGTHS[config.ssaoStrength.get()]);
    ssaoStrengthPane.getChildren().addAll(ssaoStrengthLabel, ssaoStrengthPicker);
    //
    //SSAO Scale
    ssaoScalePane = new FlowPane();
    ssaoScalePane.getStyleClass().add("settings_pane");
    ssaoScaleLabel = new Label(SSAO_SCALE_LABEL + "  ");
    ssaoScaleLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    ssaoScaleLabel.setTooltip(new Tooltip(SSAO_SCALE_TT));
    ssaoScalePicker = new ComboBox(FXCollections.observableArrayList(SSAOSCALES));
    ssaoScalePicker.setValue(SSAOSCALES[config.ssaoScale.get() - 1]);
    if (config.ssaoStrength.get() == 0) {
        ssaoScalePicker.setDisable(true);
    }
    ssaoScalePane.getChildren().addAll(ssaoScaleLabel, ssaoScalePicker);
    //
    //SSAO Type
    ssaoTypePane = new FlowPane();
    ssaoTypePane.getStyleClass().add("settings_pane");
    ssaoTypeLabel = new Label(SSAO_TYPE_LABEL + "  ");
    ssaoTypeLabel.setTooltip(new Tooltip(SSAO_TYPE_TT));
    ssaoTypeLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    ssaoTypePicker = new ComboBox(FXCollections.observableArrayList(SSAOTYPES));
    ssaoTypePicker.setValue(config.ssaoType.toString());
    if (config.ssaoStrength.get() == 0) {
        ssaoTypePicker.setDisable(true);
    }
    ssaoTypePane.getChildren().addAll(ssaoTypeLabel, ssaoTypePicker);
    //
    //
    //
    //DEPTH OF FIELD OPTIONS
    //
    //DOF Override Resolution
    dofOverridePane = new FlowPane();
    dofOverridePane.getStyleClass().add("settings_pane");
    dofOverrideLabel = new Label(DOF_OVERRIDE_LABEL + "  ");
    dofOverrideLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dofOverrideLabel.setTooltip(new Tooltip(DOF_OVERRIDE_TT));
    dofOverridePicker = new ComboBox(FXCollections.observableArrayList(DOFOVERRIDERESOLUTIONS));
    for (int i = 0; i < DOF_OVERRIDE_OPTIONS.length; i++) {
        if (config.getDOFOverride() == DOF_OVERRIDE_OPTIONS[i]) {
            dofOverridePicker.setValue(DOFOVERRIDERESOLUTIONS[i]);
        }
    }
    dofOverridePane.getChildren().addAll(dofOverrideLabel, dofOverridePicker);
    //
    //DOF Scaling
    dofScalingPane = new FlowPane();
    dofScalingPane.getStyleClass().add("settings_pane");
    dofScalingLabel = new Label(DOF_SCALING_LABEL + "  ");
    dofScalingLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dofScalingLabel.setTooltip(new Tooltip(DOF_SCALING_OR_TT));
    dofScalingChoice = new ToggleGroup();
    dofScalingEnabled = new RadioButton(ENABLE_DISABLE[0] + "   ");
    dofScalingEnabled.setToggleGroup(dofScalingChoice);
    dofScalingDisabled = new RadioButton(ENABLE_DISABLE[1]);
    dofScalingDisabled.setToggleGroup(dofScalingChoice);
    if (config.disableDofScaling.get() == 0) {
        dofScalingEnabled.setSelected(true);
    } else {
        dofScalingDisabled.setSelected(true);
    }
    dofScalingPane.getChildren().addAll(dofScalingLabel, dofScalingEnabled, dofScalingDisabled);
    //
    //DOF Additional Blur
    dofAddPane = new FlowPane();
    dofAddPane.getStyleClass().add("settings_pane");
    dofAddLabel = new Label(DOF_ADD_BLUR_LABEL + "  ");
    dofAddLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    dofAddLabel.setTooltip(new Tooltip(DOF_ADD_BLUR_TT));
    dofAddPicker = new ComboBox(FXCollections.observableArrayList(DOF_ADDITIONAL_BLUR));
    for (int i = 0; i < DOF_ADDITIONAL_BLUR_OPTIONS.length; i++) {
        if (config.dofBlurAmount.toString().equals(DOF_ADDITIONAL_BLUR_OPTIONS[i])) {
            dofAddPicker.setValue(DOF_ADDITIONAL_BLUR[i]);
        }
    }
    dofAddPane.getChildren().addAll(dofAddLabel, dofAddPicker);
    if (config.disableDOF) {
        dofScalingEnabled.setDisable(true);
        dofScalingDisabled.setDisable(true);
        dofAddPicker.setDisable(true);
        dofOverridePicker.setValue(DOFOVERRIDERESOLUTIONS[5]);
        setWindowsPresentRes.setDisable(true);
        presentWidthField.setDisable(true);
        presentHeightField.setDisable(true);
        usePresentRes.setDisable(true);
        dontUsePresentRes.setDisable(true);
    }
    //
    //
    //
    //FRAMERATE OPTIONS
    //
    //Unlock Framerate
    unlockFPSPane = new FlowPane();
    unlockFPSPane.getStyleClass().add("settings_pane");
    unlockFPSLabel = new Label(UNLOCK_FPS_LABEL + "  ");
    unlockFPSLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    unlockFPSLabel.setTooltip(new Tooltip(UNLOCK_FPS_TT));
    unlockFPSChoice = new ToggleGroup();
    fpsLocked = new RadioButton(LOCK_UNLOCK[0] + "   ");
    fpsLocked.setToggleGroup(unlockFPSChoice);
    fpsUnlocked = new RadioButton(LOCK_UNLOCK[1]);
    fpsUnlocked.setToggleGroup(unlockFPSChoice);
    if (config.unlockFPS.get() == 0) {
        fpsLocked.setSelected(true);
    } else {
        fpsUnlocked.setSelected(true);
    }
    unlockFPSPane.getChildren().addAll(unlockFPSLabel, fpsLocked, fpsUnlocked);
    //
    //Bonfire FPSFix Keybind
    fpsFixKeyPane = new FlowPane();
    fpsFixKeyPane.getStyleClass().add("settings_pane");
    fpsFixKeyLabel = new Label(FPS_FIX_KEY_LABEL + "  ");
    fpsFixKeyLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    fpsFixKeyLabel.setTooltip(new Tooltip(FPS_FIX_TT));

    fpsFixKeyPicker = new ComboBox(FPS_FIX_KEYS_ARRAY_LIST);
    fpsFixKeyPicker.setTooltip(new Tooltip(FPS_FIX_TT));
    fpsFixKeyPane.getChildren().addAll(fpsFixKeyLabel, fpsFixKeyPicker);
    //
    fpsFixKey = getFPSFixKey();
    if (fpsFixKey != null) {
        fpsFixKeyPicker.setValue(FPS_FIX_KEYS[FPS_FIX_KEYS_HEX_ARRAY_LIST.indexOf("0x" + fpsFixKey)]);
    } else {
        fpsFixKeyPicker.setValue(FPS_FIX_KEYS[4]);
        fpsFixKeyPicker.setDisable(true);
    }
    //
    //FPS Limit
    fpsLimitPane = new FlowPane();
    fpsLimitPane.getStyleClass().add("settings_pane");
    fpsLimitLabel = new Label(FPS_LIMIT_LABEL + "         ");
    fpsLimitLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    fpsLimitLabel.setTooltip(new Tooltip(FPS_LIMIT_TT));
    fpsLimitField = new TextField("" + config.FPSlimit);
    fpsLimitField.getStyleClass().add("settings_small_text_field");
    fpsLimitPane.getChildren().addAll(fpsLimitLabel, fpsLimitField);
    //
    if (config.unlockFPS.get() == 0) {
        fpsLimitField.setDisable(true);
    }
    //
    //FPS Threshold (for automatic disabling of AA)
    fpsThresholdPane = new FlowPane();
    fpsThresholdPane.getStyleClass().add("settings_pane");
    fpsThresholdLabel = new Label(FPS_THRESHOLD_LABEL + " ");
    fpsThresholdLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    fpsThresholdLabel.setTooltip(new Tooltip(FPS_THRESHOLD_TT));
    fpsThresholdField = new TextField("" + config.FPSthreshold);
    fpsThresholdField.getStyleClass().add("settings_small_text_field");
    fpsThresholdPane.getChildren().addAll(fpsThresholdLabel, fpsThresholdField);
    //
    //
    //
    //TEXTURE FILTERING OPTIONS
    //
    //Texture Filtering Override
    texOverridePane = new FlowPane();
    texOverridePane.getStyleClass().add("settings_pane");
    texOverrideLabel = new Label(TEX_FILTERING_OVERRIDE_LABEL + "  ");
    texOverrideLabel.getStyleClass().addAll("bold_text", "font_12_pt");
    texOverrideLabel.setTooltip(new Tooltip(TEX_FILT_OR_TT));
    texOverridePicker = new ComboBox(FXCollections.observableArrayList(FILTERINGOVERRIDES));
    for (int i = 0; i < FILTERING_OVERRIDE_OPTIONS.length; i++) {
        if (config.filteringOverride.get() == i) {
            texOverridePicker.setValue(FILTERINGOVERRIDES[i]);
        }
    }
    texOverridePane.getChildren().addAll(texOverrideLabel, texOverridePicker);

    primaryVBox.getChildren().addAll(titleBar, restoreDefaultsBar, spacerHBox, renderResPane, presentResPane,
            aaQualityPane, aaTypePane, ssaoStrengthPane, ssaoScalePane, ssaoTypePane, dofOverridePane,
            dofScalingPane, dofAddPane, fpsFixKeyPane, unlockFPSPane, fpsLimitPane, fpsThresholdPane,
            texOverridePane, bottomSpacerHBox);

    if (config.disableDOF) {
        dofScalingEnabled.setDisable(true);
        dofScalingDisabled.setDisable(true);
        dofAddPicker.setDisable(true);
        presentWidthField.setDisable(true);
        presentHeightField.setDisable(true);
        setWindowsPresentRes.setDisable(true);
        usePresentRes.setDisable(true);
        dontUsePresentRes.setDisable(true);
        dofScalingDisabled.setSelected(true);
        dofAddPicker.setValue(dofAddPicker.getItems().get(0));
        if (usePresentRes.isSelected()) {
            presentRes[0] = presentWidthField.getText();
            presentRes[1] = presentHeightField.getText();
        }
        presentWidthField.setText("0");
        presentHeightField.setText("0");
    }

    recheckTextInput(presentWidthField);
    recheckTextInput(presentHeightField);
    recheckTextInput(renderWidthField);
    recheckTextInput(renderHeightField);

    initializeEventHandlers();
    this.setContent(primaryPane);
}

From source file:de.pixida.logtest.designer.testrun.TestRunEditor.java

public TitledPane createPanelForConfiguration() {
    final GridPane gp = new GridPane();
    gp.setAlignment(Pos.BASELINE_LEFT);//w  w  w.j  av a2  s.  c o  m
    final double hGapOfGridPane = 10d;
    gp.setHgap(hGapOfGridPane);
    final double vGapOfGridPane = 15d;
    gp.setVgap(vGapOfGridPane);
    final double paddingOfGridPane = 5d;
    gp.setPadding(new Insets(paddingOfGridPane));
    final ColumnConstraints column1 = new ColumnConstraints();
    final ColumnConstraints column2 = new ColumnConstraints();
    column1.setHgrow(Priority.NEVER);
    column2.setHgrow(Priority.SOMETIMES);
    gp.getColumnConstraints().addAll(column1, column2);
    this.insertConfigItemsIntoGrid(gp, this.createConfigurationForm());
    final TitledPane configPane = new TitledPane("Edit Configuration", gp);
    configPane.setGraphic(Icons.getIconGraphics("pencil"));
    configPane.setCollapsible(false);
    return configPane;
}

From source file:uk.co.everywheremusic.viewcontroller.SetupScene.java

private boolean validateForm() {

    boolean valid = true;
    String errorMessage = "";

    File musicDir = new File(txtFolder.getText());
    if (!musicDir.isDirectory()) {
        valid = false;/*from w  w w .j  a v  a 2 s.c o m*/
        errorMessage += Globals.SETUP_ERR_INVALID_FOLDER + "\n\n";
    }

    String password = txtPassword.getText();
    String confirmPassword = txtConfirmPassword.getText();
    if (!password.equals(confirmPassword)) {
        valid = false;
        errorMessage += "Passwords do not match\n\n";
    }

    if (password.equals("")) {
        valid = false;
        errorMessage += "Enter a password\n\n";
    }

    if (!valid) {
        Alert alert = new Alert(AlertType.INFORMATION);
        alert.setTitle(Globals.SETUP_ALERT_TITLE);
        alert.setHeaderText(Globals.SETUP_ALERT_HEADER_TEXT);

        TextArea text = new TextArea(errorMessage);
        text.setEditable(false);
        text.setWrapText(true);
        GridPane.setVgrow(text, Priority.NEVER);
        GridPane.setHgrow(text, Priority.NEVER);

        GridPane content = new GridPane();
        content.setMaxWidth(Double.MAX_VALUE);
        content.add(text, 0, 0);

        alert.getDialogPane().setContent(content);
        alert.showAndWait();
    }

    return valid;

}

From source file:io.bitsquare.gui.main.overlays.Overlay.java

protected void createGridPane() {
    gridPane = new GridPane();
    gridPane.setHgap(5);/*from w w w.j a  va  2  s .c  o  m*/
    gridPane.setVgap(5);
    gridPane.setPadding(new Insets(30, 30, 30, 30));
    gridPane.setPrefWidth(width);

    ColumnConstraints columnConstraints1 = new ColumnConstraints();
    columnConstraints1.setHalignment(HPos.RIGHT);
    columnConstraints1.setHgrow(Priority.SOMETIMES);
    ColumnConstraints columnConstraints2 = new ColumnConstraints();
    columnConstraints2.setHgrow(Priority.ALWAYS);
    gridPane.getColumnConstraints().addAll(columnConstraints1, columnConstraints2);
}

From source file:FeeBooster.java

private GridPane cpfpGrid(Transaction tx) {
    // Setup Grid
    GridPane grid = new GridPane();
    grid.setAlignment(Pos.CENTER);//from w w  w .j a v a 2 s  .  c  om
    grid.setHgap(10);
    grid.setVgap(10);
    grid.setPadding(new Insets(25, 25, 25, 25));
    int gridheight = 0;

    // Add outputs to table
    Label outputHdrLbl = new Label("Outputs");
    grid.add(outputHdrLbl, 1, gridheight);
    gridheight++;
    ToggleGroup outputGroup = new ToggleGroup();
    for (int i = 0; i < tx.getOutputs().size(); i++) {
        // Add output to table
        TxOutput out = tx.getOutputs().get(i);
        Text outputTxt = new Text("Amount " + out.getValue() + " Satoshis\nAddress: " + out.getAddress());
        outputTxt.setUserData(i);
        grid.add(outputTxt, 0, gridheight);

        // Add radio button to table
        RadioButton radio = new RadioButton();
        radio.setUserData(i);
        radio.setToggleGroup(outputGroup);
        radio.setSelected(true);
        grid.add(radio, 1, gridheight);
        gridheight++;
    }

    // Fee
    Text fee = new Text("Fee to Pay: " + tx.getFee() + " Satoshis");
    grid.add(fee, 0, gridheight);

    // Recommended fee from bitcoinfees.21.co
    JSONObject apiResult = Utils.getFromAnAPI("http://bitcoinfees.21.co/api/v1/fees/recommended", "GET");
    int fastestFee = apiResult.getInt("fastestFee");
    long recommendedFee = fastestFee * tx.getSize() + fastestFee * 300;
    Text recFeeTxt = new Text("Recommended Fee: " + recommendedFee + " Satoshis");
    grid.add(recFeeTxt, 1, gridheight);
    gridheight += 2;

    // Instructions
    Text instructions = new Text("Choose an output to spend from. Set the total transaction fee below.");
    grid.add(instructions, 0, gridheight, 3, 1);
    gridheight++;

    // Fee spinner
    Spinner feeSpin = new Spinner((double) tx.getFee(), (double) tx.getTotalAmt(), (double) tx.getFee());
    feeSpin.setEditable(true);
    grid.add(feeSpin, 0, gridheight);
    feeSpin.valueProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue observable, Object oldValue, Object newValue) {
            double oldVal = (double) oldValue;
            double newVal = (double) newValue;
            Double step = newVal - oldVal;
            tx.setFee(tx.getFee() + step.longValue());
            fee.setText("Fee to Pay: " + tx.getFee() + " Satoshis");
        }
    });

    // Set to recommended fee button
    Button recFeeBtn = new Button("Set fee to recommended");
    grid.add(recFeeBtn, 1, gridheight);
    gridheight++;
    recFeeBtn.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            long prevFee = tx.getFee();
            long step = recommendedFee - prevFee;
            feeSpin.increment((int) step);
        }
    });

    // Output address
    Label recvAddr = new Label("Address to pay to");
    grid.add(recvAddr, 0, gridheight);
    TextField outAddr = new TextField();
    grid.add(outAddr, 1, gridheight);
    gridheight++;

    // Next Button
    Button nextBtn = new Button("Next");
    nextBtn.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {

            if (sceneCursor == scenes.size() - 1) {
                // Referenced output
                int output = (int) outputGroup.getSelectedToggle().getUserData();
                TxOutput refout = tx.getOutputs().get(output);

                // Create output for CPFP transaction
                TxOutput out = null;
                long outval = refout.getValue() - ((Double) feeSpin.getValue()).longValue();
                if (Utils.validateAddress(outAddr.getText())) {
                    byte[] decodedAddr = Utils.base58Decode(outAddr.getText());
                    boolean isP2SH = decodedAddr[0] == 0x00;
                    byte[] hash160 = Arrays.copyOfRange(decodedAddr, 1, decodedAddr.length - 4);
                    if (isP2SH) {
                        byte[] script = new byte[hash160.length + 3];
                        script[0] = (byte) 0xa9;
                        script[1] = (byte) 0x14;
                        System.arraycopy(hash160, 0, script, 2, hash160.length);
                        script[script.length - 1] = (byte) 0x87;
                        out = new TxOutput(outval, script);
                    } else {
                        byte[] script = new byte[hash160.length + 5];
                        script[0] = (byte) 0x76;
                        script[1] = (byte) 0xa9;
                        script[2] = (byte) 0x14;
                        System.arraycopy(hash160, 0, script, 3, hash160.length);
                        script[script.length - 2] = (byte) 0x88;
                        script[script.length - 1] = (byte) 0xac;
                        out = new TxOutput(outval, script);
                    }
                } else {
                    Alert alert = new Alert(Alert.AlertType.ERROR, "Invalid Address");
                    alert.showAndWait();
                    return;
                }

                // Create CPFP Transaction
                Transaction cpfpTx = new Transaction();
                TxInput in = new TxInput(tx.getHash(), output, new byte[] { (0x00) }, 0xffffffff);
                cpfpTx.addOutput(out);
                cpfpTx.addInput(in);

                // Create Scene
                Scene scene = new Scene(unsignedTxGrid(cpfpTx), 900, 500);
                scenes.add(scene);
                sceneCursor++;
                stage.setScene(scene);
            } else {
                sceneCursor++;
                stage.setScene(scenes.get(sceneCursor));
            }
        }
    });
    HBox btnHbox = new HBox(10);

    // Back Button
    Button backBtn = new Button("Back");
    backBtn.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            sceneCursor--;
            stage.setScene(scenes.get(sceneCursor));
        }
    });
    btnHbox.getChildren().add(backBtn);
    btnHbox.getChildren().add(nextBtn);

    // Cancel Button
    Button cancelBtn = new Button("Cancel");
    cancelBtn.setOnAction(cancelEvent);
    btnHbox.getChildren().add(cancelBtn);
    grid.add(btnHbox, 1, gridheight);

    return grid;
}