[英]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.