设置不透明度在disabled
伪类(如你所提到的)应该是足够了:
.list-view:disabled {
-fx-opacity: 1;
}
只是不要忘了样式表添加到Scene
:
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
举个例子:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 400, 400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
ListView<String> lw = new ListView<>();
lw.setItems(FXCollections.observableArrayList("dog", "cat", "whale"));
lw.setDisable(true);
root.setCenter(lw);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
和CSS选择器包含在文件application.css
,并将此文件放置在与Application
类文件相同的目录中。
注:如果你想拥有的选择也看起来像一样,你可以定义以下选择也:
.list-cell:disabled,
.list-cell:disabled,
.list-view:disabled {
-fx-opacity: 1;
}
你能解释一下多一点你正在尝试尝试?什么时候这个事件被解雇使它看起来被禁用了,你是否尝试过设置不透明度?你可以设置'listView.setOpacity(1.0);' – TravisF
也只是提及,如果你想使用外部CSS,你需要确保它在父节点上(最好放在根节点上),那么你可以通过'listView.getStyleClass()。add(“definedClass”);'在外部CSS集合中设置样式'.definedClass {-fx-opacity:1.0}'以防万一你想设置一个通用的CSS。除此之外,如果通过SceneBuilder将其放到父节点上,则不能调用外部CSS,它必须通过'root.getStyleSheets()。add(“link”);' – TravisF
@ TravFitzy用String而不是Label来替换项目,并使用setOpacity方法。谢谢! – conyare