JavaFX Image cancel background loading
In short; Is there a way to cancel / clear the background loading for JavaFX Images?
At one point in my code, I load a bunch of images. For performance reasons those are being loaded in the background with
public Image(String url, boolean backgroundLoading)
from the Images class.
The problem is that sometimes, user interaction causes the program to update the list of images (and not needing the previous ones) before loading of the previous ones is finished. At that point I'd like to cancel the background loading of the previous ones. Right now, it still loads the previous ones, causing longer loading time for the images actually needed.
See example below. When I get a new stream of sources before the old one is finished processing, it takes longer for the content to start displaying the images because it still is loading the previous ones (at least that's my guess).
List<ImageView> images = sources.map(source -> {
ImageView iv = new ImageView(new Image(source.toUri().toString(), true));
iv.setPreserveRatio(true);
return iv;
}).collect(Collectors.toList());
content.getChildren().setAll(images);
java image javafx loading
add a comment |
In short; Is there a way to cancel / clear the background loading for JavaFX Images?
At one point in my code, I load a bunch of images. For performance reasons those are being loaded in the background with
public Image(String url, boolean backgroundLoading)
from the Images class.
The problem is that sometimes, user interaction causes the program to update the list of images (and not needing the previous ones) before loading of the previous ones is finished. At that point I'd like to cancel the background loading of the previous ones. Right now, it still loads the previous ones, causing longer loading time for the images actually needed.
See example below. When I get a new stream of sources before the old one is finished processing, it takes longer for the content to start displaying the images because it still is loading the previous ones (at least that's my guess).
List<ImageView> images = sources.map(source -> {
ImageView iv = new ImageView(new Image(source.toUri().toString(), true));
iv.setPreserveRatio(true);
return iv;
}).collect(Collectors.toList());
content.getChildren().setAll(images);
java image javafx loading
add a comment |
In short; Is there a way to cancel / clear the background loading for JavaFX Images?
At one point in my code, I load a bunch of images. For performance reasons those are being loaded in the background with
public Image(String url, boolean backgroundLoading)
from the Images class.
The problem is that sometimes, user interaction causes the program to update the list of images (and not needing the previous ones) before loading of the previous ones is finished. At that point I'd like to cancel the background loading of the previous ones. Right now, it still loads the previous ones, causing longer loading time for the images actually needed.
See example below. When I get a new stream of sources before the old one is finished processing, it takes longer for the content to start displaying the images because it still is loading the previous ones (at least that's my guess).
List<ImageView> images = sources.map(source -> {
ImageView iv = new ImageView(new Image(source.toUri().toString(), true));
iv.setPreserveRatio(true);
return iv;
}).collect(Collectors.toList());
content.getChildren().setAll(images);
java image javafx loading
In short; Is there a way to cancel / clear the background loading for JavaFX Images?
At one point in my code, I load a bunch of images. For performance reasons those are being loaded in the background with
public Image(String url, boolean backgroundLoading)
from the Images class.
The problem is that sometimes, user interaction causes the program to update the list of images (and not needing the previous ones) before loading of the previous ones is finished. At that point I'd like to cancel the background loading of the previous ones. Right now, it still loads the previous ones, causing longer loading time for the images actually needed.
See example below. When I get a new stream of sources before the old one is finished processing, it takes longer for the content to start displaying the images because it still is loading the previous ones (at least that's my guess).
List<ImageView> images = sources.map(source -> {
ImageView iv = new ImageView(new Image(source.toUri().toString(), true));
iv.setPreserveRatio(true);
return iv;
}).collect(Collectors.toList());
content.getChildren().setAll(images);
java image javafx loading
java image javafx loading
asked Dec 29 '18 at 15:45
nevermindnevermind
119314
119314
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can cancel the background loading of an Image with Image.cancel.
Cancels the background loading of this image.
Has no effect if this image isn't loaded in background or if loading has already completed.
Oh wow. Shame on me for not finding that myself. Thanks.
– nevermind
Dec 29 '18 at 16:29
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53970968%2fjavafx-image-cancel-background-loading%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can cancel the background loading of an Image with Image.cancel.
Cancels the background loading of this image.
Has no effect if this image isn't loaded in background or if loading has already completed.
Oh wow. Shame on me for not finding that myself. Thanks.
– nevermind
Dec 29 '18 at 16:29
add a comment |
You can cancel the background loading of an Image with Image.cancel.
Cancels the background loading of this image.
Has no effect if this image isn't loaded in background or if loading has already completed.
Oh wow. Shame on me for not finding that myself. Thanks.
– nevermind
Dec 29 '18 at 16:29
add a comment |
You can cancel the background loading of an Image with Image.cancel.
Cancels the background loading of this image.
Has no effect if this image isn't loaded in background or if loading has already completed.
You can cancel the background loading of an Image with Image.cancel.
Cancels the background loading of this image.
Has no effect if this image isn't loaded in background or if loading has already completed.
answered Dec 29 '18 at 16:21
SlawSlaw
7,6083932
7,6083932
Oh wow. Shame on me for not finding that myself. Thanks.
– nevermind
Dec 29 '18 at 16:29
add a comment |
Oh wow. Shame on me for not finding that myself. Thanks.
– nevermind
Dec 29 '18 at 16:29
Oh wow. Shame on me for not finding that myself. Thanks.
– nevermind
Dec 29 '18 at 16:29
Oh wow. Shame on me for not finding that myself. Thanks.
– nevermind
Dec 29 '18 at 16:29
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53970968%2fjavafx-image-cancel-background-loading%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown