Fix concurrent problems in TexturesLoader.Selector
This commit is contained in:
@@ -20,6 +20,7 @@ package org.jackhuang.hmcl.ui.account;
|
|||||||
import com.jfoenix.concurrency.JFXUtilities;
|
import com.jfoenix.concurrency.JFXUtilities;
|
||||||
import com.jfoenix.controls.*;
|
import com.jfoenix.controls.*;
|
||||||
|
|
||||||
|
import javafx.application.Platform;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
import javafx.beans.property.ListProperty;
|
import javafx.beans.property.ListProperty;
|
||||||
import javafx.beans.property.ReadOnlyObjectProperty;
|
import javafx.beans.property.ReadOnlyObjectProperty;
|
||||||
@@ -246,7 +247,7 @@ public class AddAccountPane extends StackPane {
|
|||||||
private final CountDownLatch latch = new CountDownLatch(1);
|
private final CountDownLatch latch = new CountDownLatch(1);
|
||||||
private GameProfile selectedProfile = null;
|
private GameProfile selectedProfile = null;
|
||||||
|
|
||||||
{
|
public Selector() {
|
||||||
setStyle("-fx-padding: 8px;");
|
setStyle("-fx-padding: 8px;");
|
||||||
|
|
||||||
cancel.setText(i18n("button.cancel"));
|
cancel.setText(i18n("button.cancel"));
|
||||||
@@ -265,6 +266,7 @@ public class AddAccountPane extends StackPane {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameProfile select(YggdrasilService service, List<GameProfile> profiles) throws NoSelectedCharacterException {
|
public GameProfile select(YggdrasilService service, List<GameProfile> profiles) throws NoSelectedCharacterException {
|
||||||
|
Platform.runLater(() -> {
|
||||||
for (GameProfile profile : profiles) {
|
for (GameProfile profile : profiles) {
|
||||||
ImageView portraitView = new ImageView();
|
ImageView portraitView = new ImageView();
|
||||||
portraitView.setSmooth(false);
|
portraitView.setSmooth(false);
|
||||||
@@ -278,8 +280,8 @@ public class AddAccountPane extends StackPane {
|
|||||||
});
|
});
|
||||||
listBox.add(accountItem);
|
listBox.add(accountItem);
|
||||||
}
|
}
|
||||||
|
Controllers.dialog(this);
|
||||||
JFXUtilities.runInFX(() -> Controllers.dialog(this));
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
latch.await();
|
latch.await();
|
||||||
|
|||||||
Reference in New Issue
Block a user