mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-14 14:26:43 -04:00
将DEFAULT_ICON移至Constants, 并使用懒加载
当类初始化时, JavaFX可能还未启动, 这将使图像加载失败
This commit is contained in:
parent
53cad0e56a
commit
593159f4a6
@ -46,6 +46,7 @@ import org.jackhuang.hmcl.ui.animation.TransitionHandler;
|
|||||||
import org.jackhuang.hmcl.ui.construct.AdvancedListBox;
|
import org.jackhuang.hmcl.ui.construct.AdvancedListBox;
|
||||||
import org.jackhuang.hmcl.ui.construct.IconedItem;
|
import org.jackhuang.hmcl.ui.construct.IconedItem;
|
||||||
import org.jackhuang.hmcl.ui.construct.Validator;
|
import org.jackhuang.hmcl.ui.construct.Validator;
|
||||||
|
import org.jackhuang.hmcl.util.Constants;
|
||||||
import org.jackhuang.hmcl.util.Logging;
|
import org.jackhuang.hmcl.util.Logging;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -224,13 +225,13 @@ public class AddAccountPane extends StackPane {
|
|||||||
image = AccountHelper.getSkinImmediately(yggdrasilAccount, profile, 4, Settings.INSTANCE.getProxy());
|
image = AccountHelper.getSkinImmediately(yggdrasilAccount, profile, 4, Settings.INSTANCE.getProxy());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Logging.LOG.log(Level.WARNING, "Failed to get skin for " + profile.getName(), e);
|
Logging.LOG.log(Level.WARNING, "Failed to get skin for " + profile.getName(), e);
|
||||||
image = FXUtils.DEFAULT_ICON;
|
image = null;
|
||||||
}
|
}
|
||||||
ImageView portraitView = new ImageView();
|
ImageView portraitView = new ImageView();
|
||||||
portraitView.setSmooth(false);
|
portraitView.setSmooth(false);
|
||||||
if (image == FXUtils.DEFAULT_ICON)
|
if (image == null) {
|
||||||
portraitView.setImage(FXUtils.DEFAULT_ICON);
|
portraitView.setImage(Constants.DEFAULT_ICON.get());
|
||||||
else {
|
} else {
|
||||||
portraitView.setImage(image);
|
portraitView.setImage(image);
|
||||||
portraitView.setViewport(AccountHelper.getViewport(4));
|
portraitView.setViewport(AccountHelper.getViewport(4));
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,6 @@ import javafx.scene.control.ListView;
|
|||||||
import javafx.scene.control.ScrollBar;
|
import javafx.scene.control.ScrollBar;
|
||||||
import javafx.scene.control.ScrollPane;
|
import javafx.scene.control.ScrollPane;
|
||||||
import javafx.scene.control.Tooltip;
|
import javafx.scene.control.Tooltip;
|
||||||
import javafx.scene.image.Image;
|
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
import javafx.scene.input.ScrollEvent;
|
import javafx.scene.input.ScrollEvent;
|
||||||
@ -402,8 +401,6 @@ public final class FXUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Image DEFAULT_ICON = new Image("/assets/img/icon.png");
|
|
||||||
|
|
||||||
public static final Interpolator SINE = new Interpolator() {
|
public static final Interpolator SINE = new Interpolator() {
|
||||||
@Override
|
@Override
|
||||||
protected double curve(double t) {
|
protected double curve(double t) {
|
||||||
|
@ -264,7 +264,7 @@ public final class VersionSettingsController {
|
|||||||
if (iconFile.exists())
|
if (iconFile.exists())
|
||||||
iconPickerItem.setImage(new Image("file:" + iconFile.getAbsolutePath()));
|
iconPickerItem.setImage(new Image("file:" + iconFile.getAbsolutePath()));
|
||||||
else
|
else
|
||||||
iconPickerItem.setImage(FXUtils.DEFAULT_ICON);
|
iconPickerItem.setImage(Constants.DEFAULT_ICON.get());
|
||||||
FXUtils.limitSize(iconPickerItem.getImageView(), 32, 32);
|
FXUtils.limitSize(iconPickerItem.getImageView(), 32, 32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,11 @@ package org.jackhuang.hmcl.util;
|
|||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
|
|
||||||
|
import javafx.beans.binding.Bindings;
|
||||||
|
import javafx.beans.binding.ObjectBinding;
|
||||||
|
import javafx.scene.image.Image;
|
||||||
|
|
||||||
import org.jackhuang.hmcl.game.Argument;
|
import org.jackhuang.hmcl.game.Argument;
|
||||||
import org.jackhuang.hmcl.game.Library;
|
import org.jackhuang.hmcl.game.Library;
|
||||||
import org.jackhuang.hmcl.game.RuledArgument;
|
import org.jackhuang.hmcl.game.RuledArgument;
|
||||||
@ -65,6 +70,9 @@ public final class Constants {
|
|||||||
javafx.application.Platform.runLater(s);
|
javafx.application.Platform.runLater(s);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// lazy loading
|
||||||
|
public static final ObjectBinding<Image> DEFAULT_ICON = Bindings.createObjectBinding(() -> new Image("/assets/img/icon.png"));
|
||||||
|
|
||||||
public static final Gson GSON = new GsonBuilder()
|
public static final Gson GSON = new GsonBuilder()
|
||||||
.enableComplexMapKeySerialization()
|
.enableComplexMapKeySerialization()
|
||||||
.setPrettyPrinting()
|
.setPrettyPrinting()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user