【发布时间】:2017-11-13 01:47:12
【问题描述】:
我有一个由底部的 BorderPane 形成的窗口,一个用于西侧的 VBox,我在其中放置一些标签,另一个用于东侧的 VBox,我在其中放置一个文本字段和一个 ListView,一个带有一些按钮的 HBox 在南部。
问题是无论如何我放置这个 ListView 我只能看到一行。 ListView 已填充。
如果我使用 GridPane,它会显示 ListView,但一切都放错了。
这是使用 BorderPane 的外观:
代码如下:
window2.setTitle("Update Category");
List<Skill> listSlill=(new SkillCrud()).allS();
ObservableList<Skill> items = FXCollections.observableArrayList
(listSlill);
skillListView = new ListView<>(items);
//System.out.println((new SkillCrud()).allS()+" -- "+skillListView.getItems());
Label categoryLabel = new Label("Category: ");
categoryLabel.setFont(Font.font("Arial", FontWeight.BOLD, 14));
categoryLabel.setTranslateY(30);
Label skillLabel = new Label("Skill: ");
skillLabel.setFont(Font.font("Arial", FontWeight.BOLD, 14));
skillLabel.setTranslateY(40);
TextField categoryField = new TextField();
categoryField.setText(up.getName());
VBox lefta = new VBox();
lefta.getChildren().addAll(categoryLabel,skillLabel);
//lefta.setPadding(new Insets(0, 0, 0, 30));
VBox righta = new VBox();
righta.getChildren().addAll(categoryField,skillListView);
HBox downa = new HBox();
Button updateButton = new Button("Update");
Button cancelButton = new Button("Cancel");
updateButton.setMaxWidth(Double.MAX_VALUE);
cancelButton.setMaxWidth(Double.MAX_VALUE);
cancelButton.setPrefSize(75, 20);
cancelButton.setTranslateX(20);
updateButton.setPrefSize(75, 20);
updateButton.setTranslateX(45);
downa.setSpacing(40);
//downa.setPadding(new Insets(0, 10, 8, 25));
downa.getChildren().addAll(cancelButton, updateButton);
//righta.setSpacing(10);
//righta.setPadding(new Insets(20, 30, 0, 0));
righta.setAlignment(Pos.BASELINE_LEFT);
// GridPane grid = new GridPane();
//
// grid.setAlignment(Pos.CENTER);
// grid.setHgap(10);
// grid.setVgap(10);
// grid.setPadding(new Insets(25, 25, 25, 25));
//
//
// grid.add(categoryLabel, 0, 1, 2, 2);
// grid.add(categoryField, 1, 1, 2, 2);
//
// grid.add(skillLabel, 0, 2);
// grid.add(skillListView, 1, 2);
BorderPane layout = new BorderPane();
layout.setLeft(lefta);
layout.setRight(righta);
layout.setBottom(downa);
Scene scene2 = new Scene(layout, 300, 300);
// window2.setMaxWidth(300);
// window2.setMaxHeight(300);
// window2.setMinWidth(300);
// window2.setMinHeight(300);
window2.setScene(scene2);
window2.showAndWait();
【问题讨论】:
标签: java user-interface javafx javafx-2