設置不透明度在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