标签: gridpane

Javafx 2:如何删除Gridpane中的行或列

如果我想在JavaFx中以编程方式添加一行文本字段,我可以简单地使用gridpane add方法

这会在第1行添加一组文本字段.

for (int i = 0; i < Fields.size(); i++) {
   gridpane.add(new TextField(), i, 1);
}
Run Code Online (Sandbox Code Playgroud)

同样,如何删除一行?我找不到合适的方法来在JavaFX中方便地删除行/列.

javafx-2 gridpane

3
推荐指数
2
解决办法
2万
查看次数

JavaFX:自定义网格窗格中的按钮宽度

我想在网格窗格中具有相等(最大)宽度的按钮。

当我试图直接在 FXML 中设置它时 - 它完美地工作。

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.*?>
<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="TestController">
    <children>
        <GridPane AnchorPane.leftAnchor="0" AnchorPane.rightAnchor="0" AnchorPane.bottomAnchor="0"
                  AnchorPane.topAnchor="0">
            <columnConstraints>
                <ColumnConstraints hgrow="SOMETIMES" percentWidth="50.0"/>
                <ColumnConstraints hgrow="SOMETIMES" percentWidth="50.0"/>
            </columnConstraints>
            <children>
                <Button maxWidth="Infinity" text="Button1" GridPane.columnIndex="0"/>
                <Button maxWidth="Infinity" text="Button2" GridPane.columnIndex="1"/>
            </children>

        </GridPane>
    </children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)

但是当我想将整个网格分成一个自定义控件时,按钮停止填充可用宽度。

这是一个 FXML:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.*?>
<?import CustomGridPane?>
<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="TestController">
    <children>
        <CustomGridPane AnchorPane.leftAnchor="0" AnchorPane.rightAnchor="0" AnchorPane.bottomAnchor="0" AnchorPane.topAnchor="0">
        </CustomGridPane>
    </children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)

还有一个扩展:

public class CustomGridPane extends GridPane {

    private Button button1 = new Button("button1"); …
Run Code Online (Sandbox Code Playgroud)

javafx button custom-controls width gridpane

3
推荐指数
1
解决办法
5925
查看次数

如何使用GridPane JavaFX使按钮跨越多列/行?

我是JavaFX的新手,正在尝试使用GridPane进行简单的按钮设计.

我无法弄清楚如何使按钮跨越多个列/行,而不会将其他按钮推开.我一直在使用HBox和VBox将其他按钮组合在一起.我在按钮上尝试过setRowSpan,但这似乎不起作用.

看起来如何

我多么希望它看起来

这是我的代码:

import javafx.stage.*;
import javafx.application.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;

public class SimpleGUI extends Application {
 public void start(Stage primaryStage) throws Exception {
  GridPane root = new GridPane();
  Scene scene = new Scene(root, 200, 200);

   //Buttons
   Button b1 = new Button("KNAPP 1");
   Button b2 = new Button("KNAPP 2");
   Button b3 = new Button("KNAPP 3");
   Button b4 = new Button("KNAPP 4");
   Button b5 = new Button("KNAPP 5");
   Button b6 = new Button("KNAPP 6");

   //Horizontal Box
   HBox …
Run Code Online (Sandbox Code Playgroud)

java javafx button javafx-8 gridpane

3
推荐指数
1
解决办法
7133
查看次数

JavaFX 动态添加新文本字段

我正在编写一个程序,如果需要将更多数据添加到表单中,该程序将允许用户添加新的空文本字段。我无法理解如何为添加到 GridPane 的每个新字段设置坐标。例如,

            btnClick.setOnAction(new EventHandler<ActionEvent>(){
    public void handle(ActionEvent e)
{
    TextField text = new TextField();
    primaryPane.add(text, 5 , 6);
}});
Run Code Online (Sandbox Code Playgroud)

只会导致在位置 (5,6) 处添加一个新文本字段。如何更改代码以允许用户添加所需数量的字段,并且每个字段都显示在另一个字段之后。我知道我可以对确定数量的新字段使用循环,但是用户应该能够创建任意数量。预先感谢您的任何帮助。

内森

java javafx gridpane

3
推荐指数
1
解决办法
6481
查看次数

JavaFX-边框半径&lt;-&gt;背景颜色

如果我添加-fx-border-radius-fx-border-widthCSS来一个简单的GridPane,在角落里的背景不会被“开刀”。

CSS:

.payload {
    -fx-hgap: 20px;
    -fx-padding: 40px;

    -fx-background-color: #2969c0;

    -fx-border-radius: 50px;
    -fx-border-width: 5px;
    -fx-border-color: black;
    -fx-effect: dropshadow(three-pass-box, rgba(0, 0, 0, 0.8), 10, 0, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)

关于结果的图片: 图片链接

我该如何解决 ?

css java javafx gridpane

3
推荐指数
1
解决办法
4985
查看次数

在JavaFX中将元素动态添加到固定大小的GridPane

我想在JavaFX中显示包含各种矩形的网格.重要的是此网格无法调整大小.

我选择了GridPane布局.我动态添加javafx.scene.shape.Rectangle它.这是我的网格看起来像2行和4列.

网格4x2

在调整大小时,我希望它保持相同的整体形状,也就是说每个Rectangle具有相同的大小并且在我的Rectangles 之间保持水平和垂直间隙.

但是,这是我用4x4网格得到的: 在此输入图像描述

问题是:

  • 最后一行和最后一列的大小与Rectangles 的其余列不同.
  • 差距已经消失.

这是我负责刷新显示的代码:

public void refreshConstraints() {
    getRowConstraints().clear();
    getColumnConstraints().clear();

    for (int i = 0; i < nbRow; i++) {
        RowConstraints rConstraint = new RowConstraints();
        // ((nbRow - 1) * 10 / nbRow) = takes gap into account (10% of height)
        rConstraint.setPercentHeight(100 / nbRow - ((nbRow - 1) * 10 / nbRow));
        getRowConstraints().add(rConstraint);
    }

    for (int i = 0; i < nbColumn; i++) { …
Run Code Online (Sandbox Code Playgroud)

java javafx gridpane

2
推荐指数
2
解决办法
2万
查看次数

在 JavaFX 中创建可编辑(可绘制)网格

目前有2组网格。第一个网格集是一个 5x4 网格,其中包含地图图像。最重要的是,有一个网格,其中包含每个 5x4 网格框的所有小图块。

网格图像示例

因此,我需要采用 5x4 网格图案的大图像,每个图块内有 16x16 迷你图块,并且每个迷你图块需要可在存在于大英亩土地中的底层图像之上进行绘制(或具有图像)。

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.String?>
<?import java.net.URL?>
<?import javafx.collections.FXCollections?>
<?import javafx.scene.canvas.Canvas?>
<?import javafx.scene.control.Accordion?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.StackPane?>

<BorderPane id="mainPane" fx:id="editorPane" prefHeight="500.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/null" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.michaelgatesdev.OldLeaf.gui.controllers.tabs.TabMapEditorController">

    <stylesheets>
        <URL value="@../../css/tabs/TabMapEditor.css"/>
        <URL value="@../../css/Flat.css"/>
        <URL value="@../../css/FlatColors.css"/>
    </stylesheets>

    <center>
        <ScrollPane id="map-editor-grid-container" fx:id="gridContainer" fitToHeight="true" fitToWidth="true" nodeOrientation="LEFT_TO_RIGHT" styleClass="content-pane">
            <content>
                <StackPane fx:id="stackPane">
                    <children>
                        <GridPane id="map-editor-grid-acres" fx:id="gridAcres">
                            <columnConstraints>
                                <ColumnConstraints hgrow="ALWAYS" maxWidth="192.0" …
Run Code Online (Sandbox Code Playgroud)

css java javafx fxml gridpane

2
推荐指数
1
解决办法
6786
查看次数

gridpane javafx节点列跨度如何使用?

嘿,我有一个gridpane和一个节点,我希望它能够占用整行.

但我似乎无法弄清楚如何使用GridPane.setColumnSpan(节点,列跨度);

继承我的代码

grid.getChildren().addAll(animalFields(animal));
        grid.setHgap(10);
        grid.addRow(2, status, neutered, chipped, vaccinated, reserved);
        grid.addRow(3, statusCb,new HBox(neuteredYes, neuteredNo), new HBox(chippedYes, chippedNo), new HBox(vaccinatedYes, vaccinatedNo), new HBox(reservedYes, reservedNo));
        grid.addRow(4, new Label("people interested"));
        grid.addRow(6, sponsorsTable(((Adoption) animal.getAdoption()).getInterested()));
        GridPane.setColumnSpan(sponsorsTable(((Adoption) animal.getAdoption()).getInterested()), 6);
        grid.addRow(7, hBox2);
Run Code Online (Sandbox Code Playgroud)

这就是它现在的样子

目前的样子

这就是我想要的样子

在此输入图像描述

感谢任何帮助.谢谢

java javafx html-table gridpane

2
推荐指数
1
解决办法
3684
查看次数

在 GridPane 中分配剩余空间或如何进行

我们需要一个具有以下要求的 3 列布局的解决方案:

  • 中间列有固定大小
  • 中间列在父项中居中
  • 其他两列都共享剩余空间
  • 另外两列都具有相同的大小

假设我们有一个 440px 的水平空间和一个固定大小为 40px 的中间列。另外两列应该共享剩余的 400px,这样每列的宽度为 200px。

------------------------------------
|    200px    | 40px |    200px    |
------------------------------------
Run Code Online (Sandbox Code Playgroud)

如果整体大小发生变化,比如 500px,中间列的宽度应该不会发生变化,但其他列的宽度应该发生变化。

----------------------------------------
|     230px     | 40px |     230px     |
----------------------------------------
Run Code Online (Sandbox Code Playgroud)

如果使用 GridPane 可以做到这一点,请告诉我如何操作。

如果使用 GridPane 无法做到这一点,我愿意接受其他建议。

我更喜欢一个简单的解决方案 a) 没有 FXML 的 Java 代码和 b) 只有 JavaFx,所以额外的库。

java user-interface javafx gridpane

2
推荐指数
1
解决办法
1169
查看次数

Vaadin 是否具有相当于 JavaFX GridPane 的功能?

在 JavaFX 中,多个 UI 元素可以在网格中显示给用户,使用GridPane. Vaadin 有一个网格布局,但是它们Grid不能作为其他元素的容器。相反,它似乎用作将单个 bean 显示为行的表。Vaadin 确实有一个有序的布局,但是,我认为它不能用于创建其他 UI 元素的网格。

我将如何在 Vaadin 中复制 JavaFX GridPane 的行为?

java user-interface javafx vaadin gridpane

2
推荐指数
1
解决办法
77
查看次数