From 1b1f22b9fa7db34c5ca01f6ae442d7c72c6b8f9b Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Wed, 3 Oct 2018 22:29:31 +0800 Subject: [PATCH] Fix Java list display error on JDK10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 如何重现: 1. 关闭当前选中版本的版本特定设置 2. 重启HMCL 3. 从主界面进入版本设置 4. 打开版本特定设置 5. 展开Java列表 问题:Java列表中的项目除了自定义项外,在外观上仍保持被禁用的状态(但是可以点击)。 原因未知。 此问题只在Java10上出现。 若在进入版本设置界面前,版本特定设置已经被打开,则不会出现此问题。 已知Java项目的styleClass、pseudoClass、disable、disabled属性均正常。 试过但没用的解决方法: 1. 删除HMCL全部CSS 2. 将Java列表默认展开 3. 使用JavaFX原生组件替代JFoenix组件 本提交中的代码由于玄学原因,可以解决此问题。 --- .../java/org/jackhuang/hmcl/ui/construct/MultiFileItem.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MultiFileItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MultiFileItem.java index 3e676a03a..684958611 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MultiFileItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MultiFileItem.java @@ -24,6 +24,7 @@ import javafx.beans.NamedArg; import javafx.beans.property.*; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Node; import javafx.scene.control.Label; @@ -138,7 +139,7 @@ public class MultiFileItem extends ComponentList { public Node createChildren(String title, String subtitle, T userData) { BorderPane pane = new BorderPane(); - pane.setStyle("-fx-padding: 3;"); + pane.setPadding(new Insets(3)); FXUtils.setLimitHeight(pane, 20); JFXRadioButton left = new JFXRadioButton(title);