【发布时间】:2014-12-29 04:46:44
【问题描述】:
实际上我正在尝试更改 FXML 中标签上的文本
这是控制器的代码
public class ShowDeleteController implements Initializable {
@FXML
Label labelType;
@FXML
Label labelID;
@FXML
Label labelName;
@FXML
Label LabelBasedOnTypeText;
@FXML
Label LabelBasedOnType;
@Override
public void initialize(URL url, ResourceBundle rb) {
/*Preferences prefs = Preferences.userRoot().node(this.getClass().getName());
labelType.setText(prefs.get("userName", labelType.getText()));*/ tried with this but don't work
}
public void onClickCancel(ActionEvent event) {
Node source = (Node) event.getSource();
Stage stage = (Stage) source.getScene().getWindow();
stage.close();
}
public void SettingText(String TypeData, String ID, String Name, String Add, String AddText, ActionEvent event) {
labelType.setText(TypeData);
labelID.setText(ID);
labelName.setText(Name);
LabelBasedOnTypeText.setText(AddText);
LabelBasedOnType.setText(Add);
}
}
这是我调用 fxml 的代码
public void showDeletedData(String type, String ID, String Name, String Add, String AddText, ActionEvent event) throws Exception{
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("PopUp/showDelete.fxml"));
AnchorPane page = (AnchorPane) loader.load();
ShowDeleteController controller = loader.getController();
controller.SettingText(type, ID, Name, Add, AddText, event);
Stage PopUpStage = new Stage();
PopUpStage.setTitle("Registro Eliminado");
PopUpStage.initModality(Modality.APPLICATION_MODAL);
PopUpStage.centerOnScreen();
PopUpStage.setResizable(false);
Scene scene = new Scene(page);
PopUpStage.setScene(scene);
PopUpStage.showAndWait();
} catch (Exception ex) {
System.out.println("Internal error: " + ex.getMessage());
}
}
所以实际上只是想知道是否有必要初始化标签,因为我尝试不设置标签上的文本并且它可以工作,但是,当然文本仅默认显示。
希望你能帮我解决这个问题,对不起我的英语不好
【问题讨论】:
-
我解决了只是标签上的名字有错误,一个很简单的错误