繁体   English   中英

javafx中的响应式布局

[英]Responsive layout in javafx

我想在JavaFX中使布局响应。 我是新手。 并请提出更好的设计方式。 我希望在不同的屏幕中显示不同大小的对象。 我还没有学习过FXML,但是学习过CSS。 这是截图

package Test;

import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.TextField;
import javafx.scene.layout.*;
import javafx.scene.text.TextAlignment;
import javafx.stage.Stage;
import javafx.scene.shape.Polygon;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;

import static javafx.scene.paint.Color.rgb;

public class Hexagons extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Demo");
        VBox root= new VBox();
        GridPane top=new GridPane();
        GridPane belowtop=new GridPane();
        GridPane thirdrow=new GridPane();
        belowtop.setPadding(new Insets(0,0,0,90));

        belowtop.setHgap(20.0);
        belowtop.setVgap(0.0);
        top.setHgap(20.0);
        top.setVgap(0.0);
        thirdrow.setVgap(0);
        thirdrow.setHgap(20);
        Scene scene=new Scene(root,900,600);
        StackPane stackPane1=new StackPane();
        GridPane gridPane1=new GridPane();

        Polygon hexagon1=new Polygon();
        hexagon1.setFill(rgb(0, 255, 29));
        hexagon1.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label1=new Label("Temperature");
        gridPane1.setHalignment(label1, HPos.CENTER);
        label1.setTextFill(rgb(88, 2, 4));
        TextField textField1=new TextField();
        stackPane1.getChildren().addAll(hexagon1,gridPane1);
        gridPane1.setVgap(10);
        gridPane1.setHgap(5);
        gridPane1.add(label1,1,1);
        gridPane1.add(textField1,1,2);
        gridPane1.setPadding(new Insets(40,0,0,0));

        StackPane stackPane2=new StackPane();
        GridPane gridPane2=new GridPane();

        Polygon hexagon2=new Polygon();
        hexagon2.setFill(rgb(0, 255, 29));
        hexagon2.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label2=new Label("Humidity");
        gridPane2.setHalignment(label2, HPos.CENTER);
        label2.setTextFill(rgb(88, 2, 4));
        TextField textField2=new TextField();
        stackPane2.getChildren().addAll(hexagon2,gridPane2);
        gridPane2.setVgap(10);
        gridPane2.setHgap(5);
        gridPane2.add(label2,1,1);
        gridPane2.add(textField2,1,2);
        gridPane2.setPadding(new Insets(40,0,0,0));

        StackPane stackPane3=new StackPane();
        GridPane gridPane3=new GridPane();

        Polygon hexagon3=new Polygon();
        hexagon3.setFill(rgb(0, 255, 29));
        hexagon3.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label3=new Label("EFG");
        gridPane3.setHalignment(label3, HPos.CENTER);
        label3.setTextFill(rgb(88, 2, 4));
        TextField textField3=new TextField();
        stackPane3.getChildren().addAll(hexagon3,gridPane3);
        gridPane3.setVgap(10);
        gridPane3.setHgap(5);
        gridPane3.add(label3,1,1);
        gridPane3.add(textField3,1,2);
        gridPane3.setPadding(new Insets(40,0,0,0));


        StackPane stackPane4=new StackPane();
        GridPane gridPane4=new GridPane();

        Polygon hexagon4=new Polygon();
        hexagon4.setFill(rgb(0, 255, 29));
        hexagon4.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label4=new Label("HIJ");
        gridPane4.setHalignment(label4, HPos.CENTER);
        label4.setTextFill(rgb(88, 2, 4));
        TextField textField4=new TextField();
        stackPane4.getChildren().addAll(hexagon4,gridPane4);
        gridPane4.setVgap(10);
        gridPane4.setHgap(5);
        gridPane4.add(label4,1,1);
        gridPane4.add(textField4,1,2);
        gridPane4.setPadding(new Insets(40,0,0,0));


        StackPane stackPane5=new StackPane();
        GridPane gridPane5=new GridPane();

        Polygon hexagon5=new Polygon();
        hexagon5.setFill(rgb(0, 255, 29));
        hexagon5.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label5=new Label("KLM");
        gridPane5.setHalignment(label5, HPos.CENTER);
        label5.setTextFill(rgb(88, 2, 4));
        TextField textField5=new TextField();
        stackPane5.getChildren().addAll(hexagon5,gridPane5);
        gridPane5.setVgap(10);
        gridPane5.setHgap(5);
        gridPane5.add(label5,1,1);
        gridPane5.add(textField5,1,2);
        gridPane5.setPadding(new Insets(40,0,0,0));


        StackPane stackPane6=new StackPane();
        GridPane gridPane6=new GridPane();

        Polygon hexagon6=new Polygon();
        hexagon6.setFill(rgb(0, 255, 29));
        hexagon6.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label6=new Label("NOP");
        gridPane6.setHalignment(label6, HPos.CENTER);
        label6.setTextFill(rgb(0, 10, 126));
        TextField textField6=new TextField();
        stackPane6.getChildren().addAll(hexagon6,gridPane6);
        gridPane6.setVgap(10);
        gridPane6.setHgap(5);
        gridPane6.add(label6,1,1);
        gridPane6.add(textField6,1,2);
        gridPane6.setPadding(new Insets(40,0,0,0));

        StackPane stackPane7=new StackPane();
        GridPane gridPane7=new GridPane();

        Polygon hexagon7=new Polygon();
        hexagon7.setFill(rgb(0, 255, 29));
        hexagon7.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label7=new Label("NOPS");
        gridPane7.setHalignment(label7, HPos.CENTER);
        label7.setTextFill(rgb(0, 10, 126));
        TextField textField7=new TextField();
        stackPane7.getChildren().addAll(hexagon7,gridPane7);
        gridPane7.setVgap(10);
        gridPane7.setHgap(5);
        gridPane7.add(label7,1,1);
        gridPane7.add(textField7,1,2);
        gridPane7.setPadding(new Insets(40,0,0,0));

        StackPane stackPane8=new StackPane();
        GridPane gridPane8=new GridPane();

        Polygon hexagon8=new Polygon();
        hexagon8.setFill(rgb(0, 255, 29));
        hexagon8.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label8=new Label("NOPE");
        gridPane8.setHalignment(label8, HPos.CENTER);
        label8.setTextFill(rgb(0, 10, 126));
        TextField textField8=new TextField();
        stackPane8.getChildren().addAll(hexagon8,gridPane8);
        gridPane8.setVgap(10);
        gridPane8.setHgap(5);
        gridPane8.add(label8,1,1);
        gridPane8.add(textField8,1,2);
        gridPane8.setPadding(new Insets(40,0,0,0));

        StackPane stackPane9=new StackPane();
        GridPane gridPane9=new GridPane();

        Polygon hexagon9=new Polygon();
        hexagon9.setFill(rgb(0, 255, 29));
        hexagon9.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label9=new Label("NA");
        gridPane9.setHalignment(label9, HPos.CENTER);
        label9.setTextFill(rgb(0, 10, 126));
        TextField textField9=new TextField();
        stackPane9.getChildren().addAll(hexagon9,gridPane9);
        gridPane9.setVgap(10);
        gridPane9.setHgap(5);
        gridPane9.add(label9,1,1);
        gridPane9.add(textField9,1,2);
        gridPane9.setPadding(new Insets(40,0,0,0));

        StackPane stackPane10=new StackPane();
        GridPane gridPane10=new GridPane();

        Polygon hexagon10=new Polygon();
        hexagon10.setFill(rgb(0, 255, 29));
        hexagon10.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label10=new Label("NAA");
        gridPane10.setHalignment(label10, HPos.CENTER);
        label10.setTextFill(rgb(0, 10, 126));
        TextField textField10=new TextField();
        stackPane10.getChildren().addAll(hexagon10,gridPane10);
        gridPane10.setVgap(10);
        gridPane10.setHgap(5);
        gridPane10.add(label10,1,1);
        gridPane10.add(textField10,1,2);
        gridPane10.setPadding(new Insets(40,0,0,0));

        StackPane stackPane11=new StackPane();
        GridPane gridPane11=new GridPane();

        Polygon hexagon11=new Polygon();
        hexagon11.setFill(rgb(0, 255, 29));
        hexagon11.getPoints().addAll(new Double[]{
                100.0,50.0,
                20.0,100.0,
                20.0,170.71,
                100.0,220.71,
                180.0,170.71,
                180.0,100.0
        });


        Label label11=new Label("NAAA");
        gridPane11.setHalignment(label11, HPos.CENTER);
        label11.setTextFill(rgb(0, 10, 126));
        TextField textField11=new TextField();
        stackPane11.getChildren().addAll(hexagon11,gridPane11);
        gridPane11.setVgap(10);
        gridPane11.setHgap(5);
        gridPane11.add(label11,1,1);
        gridPane11.add(textField11,1,2);
        gridPane11.setPadding(new Insets(40,0,0,0));



        root.setSpacing(-31);
        top.add(stackPane1,1,1);
        top.setVgap(40);
        top.add(stackPane2,2,1);
        top.add(stackPane3,3,1);
        top.add(stackPane7,4,1);
        belowtop.add(stackPane4,1,1);
        belowtop.add(stackPane5,2,1);
        belowtop.add(stackPane6,3,1);
        thirdrow.add(stackPane8,1,1);
        thirdrow.add(stackPane9,2,1);
        thirdrow.add(stackPane10,3,1);
        thirdrow.add(stackPane11,4,1);

        scene.getStylesheets().add(Hexagons.class.getResource("Hexagons.css").toExternalForm());
        root.getChildren().addAll(top,belowtop,thirdrow);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM