Привет? У меня есть приложение JavaFX, которое загружает изображения на онлайн-сервер. когда пользователь нажимает кнопку загрузки, отображается неопределенный диалог выполнения. Я хочу скрыть этот диалог прогресса после завершения загрузки, но мне кажется, что он не работает. это мой код
КЛАСС КОНТРОЛЛЕРА УВЕДОМЛЕНИЙ
public class NotificationController implements Initializable {
@FXML
public HBox progressHbox;
@FXML
public HBox textHbox;
@FXML
public TextField urlText;
@FXML
private TextField titleText;
@FXML
private ProgressBar progressBar;
@FXML
private AnchorPane rootPane;
Preferences preferences = new Preferences();
@FXML
private Button copyButton;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
conn = Main.conn;
progressHbox.setVisible(true);
textHbox.setVisible(false);
}
@FXML
private void loadOpenUrl(ActionEvent event) {
try {
Desktop.getDesktop().browse(new URI(imageurl));
Stage stage = (Stage) rootPane.getScene().getWindow();
stage.close();
} catch (IOException | URISyntaxException ex) {
Logger.getLogger(NotificationController.class.getName()).log(
Level.SEVERE, null, ex);
}
}
Connection conn;
@FXML
private void loadCopyUrl(ActionEvent event) {
if (titleText.getText().length() > 0) {
try {
String id = imageurl.replaceAll("[^\\d]", "");
;
System.out.println("this is id " + id);
conn.prepareStatement(
"UPDATE images set title = '" + titleText.getText()
+ "' where id = " + id + "").execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
Clipboard clipboard = Clipboard.getSystemClipboard();
ClipboardContent content = new ClipboardContent();
content.putString(imageurl);
clipboard.setContent(content);
Stage stage = (Stage) rootPane.getScene().getWindow();
stage.close();
}
@FXML
private void loadbuttonText(KeyEvent event) {
if (titleText.getText().length() > 0) {
copyButton.setText("Copy/Update");
} else {
copyButton.setText("Copy");
}
}
}
Из моего основного класса я сначала загружаю контроллер уведомлений таким образом видимость компонентов:
if (uploadsuccess && !isGoogle) {
HBox ph = new HBox();
HBox th = new HBox();
TextField urls = new TextField();
System.out.println("Uploaad suceess testing");
NotificationController nc = new NotificationController();
ph = nc.progressHbox;
th = nc.textHbox;
urls = nc.urlText;
ph.setVisible(false);
th.setVisible(true);
urls.setText(imageurl);
}
Я пробовал описанный выше метод, но он не работает, но отображается вывод консоли (тестирование успешности загрузки). Кто-нибудь знает, как мне это сделать?