gpt4 book ai didi

java - 如何初始化 TabPane (JavaFX)

转载 作者:行者123 更新时间:2023-12-01 09:53:53 28 4
gpt4 key购买 nike

在我的 GUI 中,我尝试显示一个包含其他元素的 TabPane

当调用特定场景的初始化方法时,我可以将所需的数据添加到第一个Tab中。

如何访问第二个并在那里添加数据?`

当您在单个选项卡之间切换时是否有一个方法被调用,或者是否可以从初始化方法调用它?

//all the fields

@FXML
private void initialize() {
smsHandynumberColumn.setCellValueFactory(cellData -> cellData.getValue().numberProperty());
smsHandyproviderColumn.setCellValueFactory(cellData -> cellData.getValue().providerProperty());
displayHandyDetails(null);
smsHandyList.getSelectionModel().selectedItemProperty()
.addListener((observable, oldValue, newValue) -> displayHandyDetails(newValue));

// providernameColumn.setCellValueFactory(cellData -> cellData.getValue().nameProperty());
// provideramountColumn.setCellValueFactory(cellData -> cellData.getValue().sizeProperty());
}

@FXML
private void displayHandyDetails(SmsHandy handy) {
if (handy != null) {
handyNumberLabel.setText(handy.getNumber());
providerLabel.setText(handy.getProvider().getName());
registerLabel.setText(handy.getDate().toString());
receivedLabel.setText(Integer.toString(handy.getReceivedList().size()));
sentLabel.setText(Integer.toString(handy.getSentList().size()));
if (handy instanceof PrepaidSmsHandy) {
balanceLabel.setText(Integer.toString(handy.getProvider().getCreditForSmsHandy(handy.getNumber()))
+ " Cent on account");
typeLabel.setText("Prepaid");
} else {
balanceLabel.setText(
Integer.toString(((TariffPlanSmsHandy) handy).getRemainingFreeSms()) + " free SMS left");
typeLabel.setText("Tariff-Plan");
}
} else {
handyNumberLabel.setText(" ");
providerLabel.setText(" ");
registerLabel.setText(" ");
typeLabel.setText(" ");
balanceLabel.setText(" ");
receivedLabel.setText(" ");
sentLabel.setText(" ");
}
}

public void setMainApp(MainApp mainApp) {
this.mainApp = mainApp;
smsHandyList.setItems(mainApp.getHandyList());
}

}

所以,这是 Controller 类。就这样,我可以工作了。与第一个选项卡 Pane (当您查看它时默认显示)。

FXML 文件:http://pastebin.com/MQ0C8EWD

最佳答案

首先初始化选项卡,然后初始化所有所需的选项卡。您可以设置标题和内容,但不要忘记将所有选项卡添加到 tabPane 中。

 TabPane tabPane = new TabPane();
Tab tab1 = new Tab();
tab.setText("tab 1");
tab.setContent(new Rectangle(200,200, Color.LIGHTSTEELBLUE));
Tab tab2 = new Tab();
tab.setText("tab 2");
tab.setContent(new Rectangle(200,200, Color.RED));
tabPane.getTabs().addAll(tab1, tab2);

更多信息:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TabPane.html

关于java - 如何初始化 TabPane (JavaFX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37390413/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com