如何在整个场景中使用javafx 2中的gridpane

时间:2013-08-25 13:35:45

标签: grid javafx-2 scene scenebuilder pane

我想根据下面的附图和代码在整个场景中安装网格盒,但是我无论如何都不能! 我已经尝试生成空行和列,但仍然没有填充,除非我添加了很多。 我想指定一些行和列,然后让程序在屏幕上平均划分,请帮助

我怎样才能在单元格右侧的表格中找到文本?

enter image description here

@Override public void start(Stage stage) {

        timer.start();
        buildData_timer.start();

        Group root = new Group();
        Scene scene = new Scene(root, 1180, 650);
        stage.setScene(scene);
        stage.setTitle("Separator Sample");
        scene.getStylesheets().addAll(this.getClass().getResource("style.css").toExternalForm());

        GridPane Mainpane = new GridPane();
        scene.setRoot(Mainpane);
        Mainpane.setGridLinesVisible(true);
        Mainpane.setId("Mainpane");

        GridPane prayertime_pane = new GridPane();
        prayertime_pane.setId("prayertime_pane");

        prayertime_pane.setGridLinesVisible(true);
        prayertime_pane.setPadding(new Insets(20, 20, 20, 20));
        prayertime_pane.setVgap(20);
        prayertime_pane.setHgap(35);

        HBox clock1Box = new HBox();
        clock1Box.setSpacing(0);
        clock1Box.getChildren().addAll(clock);

        HBox fajrBox = new HBox();
        fajrBox.setSpacing(0);
        fajrBox.setMaxSize(155, 54);
        fajrBox.getChildren().addAll(fajr_hourLeft, fajr_hourRight, time_Separator1, fajr_minLeft, fajr_minRight);
        prayertime_pane.setConstraints(fajrBox, 0, 1);
        prayertime_pane.getChildren().add(fajrBox);

        HBox zuhrBox = new HBox();
        zuhrBox.setSpacing(0);
        zuhrBox.setMaxSize(155, 54);
        zuhrBox.getChildren().addAll(zuhr_hourLeft, zuhr_hourRight, time_Separator2, zuhr_minLeft, zuhr_minRight);
        prayertime_pane.setConstraints(zuhrBox, 0, 2);
        prayertime_pane.getChildren().add(zuhrBox);

        HBox asrBox = new HBox();
        asrBox.setSpacing(0);
        asrBox.setMaxSize(155, 54);
        asrBox.getChildren().addAll(asr_hourLeft, asr_hourRight, time_Separator3, asr_minLeft, asr_minRight);
        prayertime_pane.setConstraints(asrBox, 0, 3);
        prayertime_pane.getChildren().add(asrBox);

        HBox maghribBox = new HBox();
        maghribBox.setSpacing(0);
        maghribBox.setMaxSize(155, 54);
        maghribBox.getChildren().addAll(maghrib_hourLeft, maghrib_hourRight, time_Separator4, maghrib_minLeft, maghrib_minRight);
        prayertime_pane.setConstraints(maghribBox, 0, 4);
        prayertime_pane.getChildren().add(maghribBox);

        HBox ishaBox = new HBox();
        ishaBox.setSpacing(0);
        ishaBox.setMaxSize(155, 54);
        ishaBox.getChildren().addAll(isha_hourLeft, isha_hourRight, time_Separator5, isha_minLeft, isha_minRight);
        prayertime_pane.setConstraints(ishaBox, 0, 5);
        prayertime_pane.getChildren().add(ishaBox);

        TextFlow fajrtextFlow = new TextFlow();
        Text text1 = new Text("الفجر\n");
        text1.setId("prayer-text-arabic");
        Text text10 = new Text("Fajr");
        text10.setId("prayer-text-english");
        fajrtextFlow.getChildren().addAll(text1, text10);
        prayertime_pane.setConstraints(fajrtextFlow, 1, 1);
        prayertime_pane.getChildren().add(fajrtextFlow);

        TextFlow duhrtextFlow = new TextFlow();
        Text text2 = new Text("الظهر\n");
        text2.setId("prayer-text-arabic");
        Text text20 = new Text("Duhr");
        text20.setId("prayer-text-english");
        duhrtextFlow.getChildren().addAll(text2,text20);
        prayertime_pane.setConstraints(duhrtextFlow, 1, 2);
        prayertime_pane.getChildren().add(duhrtextFlow);

        TextFlow asrFlow = new TextFlow();
        Text text3 = new Text("العصر\n");
        text3.setId("prayer-text-arabic");
        Text text30 = new Text("Asr");
        text30.setId("prayer-text-english");
        asrFlow.getChildren().addAll(text3,text30);
        prayertime_pane.setConstraints(asrFlow, 1, 3);
        prayertime_pane.getChildren().add(asrFlow);

        TextFlow maghribFlow = new TextFlow();
        Text text4 = new Text("المغرب\n");
        text4.setId("prayer-text-arabic");
        Text text40 = new Text("Maghrib");
        text40.setId("prayer-text-english");
        maghribFlow.getChildren().addAll(text4,text40);
        prayertime_pane.setConstraints(maghribFlow, 1, 4);
        prayertime_pane.getChildren().add(maghribFlow);

        TextFlow ishaFlow = new TextFlow();
        Text text5 = new Text("العشاء\n");
        text5.setId("prayer-text-arabic");
        Text text50 = new Text("Isha");
        text50.setId("prayer-text-english");
        ishaFlow.getChildren().addAll(text5,text50);
        prayertime_pane.setConstraints(ishaFlow, 1, 5);
        prayertime_pane.getChildren().add(ishaFlow);

        final Separator sepHor = new Separator();
//        sepHor.setAlignment(Pos.CENTER_LEFT);
//        sepHor.setOrientation(Orientation.HORIZONTAL);
        prayertime_pane.setConstraints(sepHor, 0, 1);
        prayertime_pane.setColumnSpan(sepHor, 2);
        prayertime_pane.getChildren().add(sepHor);       

        Mainpane.setConstraints(prayertime_pane, 2, 3);
        Mainpane.getChildren().add(prayertime_pane);

        Mainpane.setConstraints(clock1Box, 7, 1);
        Mainpane.getChildren().add(clock1Box);

        stage.show();


//        stage.setFullScreen(true);
    }

1 个答案:

答案 0 :(得分:0)

尝试

ColumnConstraints c1 = new ColumnConstraints();
c1.setHgrow(Priority.ALWAYS);
ColumnConstraints c2 = new ColumnConstraints();
c2.setHgrow(Priority.NEVER);

Mainpane.getColumnConstraints().addAll(c1, c2);

RowConstraints r1 = new RowConstraints();
r1.setVgrow(Priority.NEVER);
RowConstraints r2 = new RowConstraints();
r2.setVgrow(Priority.ALWAYS);

Mainpane.getRowConstraints().addAll(r1, r2);

有关更多行/列/单元格设置,请调查GridPaneRowConstraintsColumnConstraints

但我建议你在这里使用AnchorPaneBorderPane