【发布时间】:2018-04-29 00:21:56
【问题描述】:
然后
我创建了一个键来显示控件的包含:
我希望 VBox 中的列表视图在保持比例的同时增长。
代码如下:
public class Modules extends BorderPane {
private Button Term1AddBtn, Term2AddBtn, Term2AddBtn, Term2RemoveBtn, ResetBtn, SubmitBtn;
private ListView Term1UnSelect, Term2UnSelect, Term1Select, Term2Select, YearSelect;
private TextField txtTerm1Cred, txtTerm1Cred;
public Modules() {
FlowPane flowPane = new FlowPane(Orientation.VERTICAL);
flowPane.setHgap(20);
flowPane.setVgap(20);
this.setPadding(new Insets(0, 10, 20, 10));
Label lblTerm1UnSel = new Label("Unselected Term 1 Modules");
Label lblTerm2UnSel = new Label("Unselected Term 2 Modules");
Label lblTerm1Sel = new Label("Selected Term 1 Modules");
Label lblTerm2Sel = new Label("Selected Term 2 Modules");
Label lblYearSel = new Label("Selected Year Long Modules");
Label lblTerm1Btns = new Label("Term 1:");
Label lblTerm2Btns = new Label("Term 2:");
Label lblTerm1Cred = new Label("Current Term 1 Credits:");
Label lblTerm2Cred = new Label("Current Term 2 Credits:");
Term1UnSelect = new ListView();
Term2UnSelect = new ListView();
Term1Select = new ListView();
Term2Select = new ListView();
YearSelect = new ListView();
Term1AddBtn = new Button("Add");
Term1RemoveBtn = new Button("Remove");
Term2AddBtn = new Button("Add");
Term2RemoveBtn = new Button("Remove");
ResetBtn = new Button("Reset");
SubmitBtn = new Button("Submit");
txtTerm1Cred = new TextField("0");
txtTerm1Cred = new TextField("0");
Term1UnSelect.setPrefSize(350, 100);
Term2UnSelect.setPrefSize(350, 100);
Term1Select.setPrefSize(350, 100);
Term2Select.setPrefSize(350, 100);
YearSelect.setPrefSize(350, 50);
txtTerm1Cred.setMaxWidth(50);
txtTerm1Cred.setMaxWidth(50);
Term1AddBtn.setPrefWidth(70);
Term1RemoveBtn.setPrefWidth(70);
Term2AddBtn.setPrefWidth(70);
Term2RemoveBtn.setPrefWidth(70);
ResetBtn.setPrefWidth(70);
SubmitBtn.setPrefWidth(70);
VBox vboxTerm1Unsel = new VBox();
VBox vboxTerm2Unsel = new VBox();
VBox vboxTerm1Sel = new VBox();
VBox vboxTerm2Sel = new VBox();
VBox vboxYear = new VBox();
HBox hboxTerm1Btns = new HBox();
HBox hboxTerm2Btns = new HBox();
HBox hboxTerm1Cred = new HBox();
HBox hboxTerm2Cred = new HBox();
HBox hboxResetSubmit= new HBox();
hboxTerm1Btns.setSpacing(20);
hboxTerm2Btns.setSpacing(20);
hboxTerm1Cred.setSpacing(20);
hboxTerm2Cred.setSpacing(20);
hboxResetSubmit.setSpacing(20);
vboxTerm1Unsel.getChildren().addAll(lblTerm1UnSel, Term1UnSelect);
vboxTerm2Unsel.getChildren().addAll(lblTerm2UnSel, Term2UnSelect);
vboxTerm1Sel.getChildren().addAll(lblTerm1Sel, Term1Select);
vboxTerm2Sel.getChildren().addAll(lblTerm2Sel, Term2Select);
vboxYear.getChildren().addAll(lblYearSel, YearSelect);
hboxTerm1Btns.getChildren().addAll(lblTerm1Btns, Term1AddBtn, Term1RemoveBtn);
hboxTerm2Btns.getChildren().addAll(lblTerm2Btns, Term2AddBtn, Term2RemoveBtn);
hboxTerm1Cred.getChildren().addAll(lblTerm1Cred, txtTerm1Cred);
hboxTerm2Cred.getChildren().addAll(lblTerm2Cred, txtTerm1Cred);
hboxResetSubmit.getChildren().addAll(ResetBtn, SubmitBtn);
hboxTerm1Btns.setAlignment(Pos.CENTER);
hboxTerm2Btns.setAlignment(Pos.CENTER);
hboxTerm1Cred.setAlignment(Pos.CENTER);
hboxTerm2Cred.setAlignment(Pos.CENTER);
hboxResetSubmit.setAlignment(Pos.CENTER);
flowPane.getChildren().addAll(vboxTerm1Unsel, hboxTerm1Btns, vboxTerm2Unsel, hboxTerm2Btns, hboxTerm1Cred, vboxYear, vboxTerm1Sel, vboxTerm2Sel, hboxTerm2Cred);
BorderPane.setMargin(flowPane, new Insets(20));
this.setCenter(flowPane);
this.setBottom(hboxResetSubmit);
}
或者,如果可能的话,一种使控件保持相同格式的方法,如下所示:
必须绕过更多细节部分才能发布,对不起
Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Nullam elementum laoreet tincidunt。整数简历 magna venenatis nibh blandit dignissim。暂停潜力。 Nunc velit est, congue dignissim diam et, rhoncus mattis quam。 Duis ultricies lectus vel mauris aliquet,nec ultrices augue vehicula。 Ut cursus fringilla ipsum。 Cras id feugiat metus。 Interdum et malesuada 在 faucibus 中以 ac ante ipsum primis 闻名。 Suspendisse vitae luctus risus。 Proin ut tempor turpis,非车辆 nunc。 Nam et sapien sit amet dui suscipit lacinia。
【问题讨论】:
-
您需要发布您的
View代码。 -
你可能不应该使用
FlowPane。 -
这是用纯代码还是
FXML完成的? -
@Sedrick 纯代码,使用 MVC 方法,也添加了代码,省略了无关紧要的声明/分配
-
您遗漏的代码很重要。我必须重新输入所有内容才能运行您的代码。