Я не могу изменить цвет угла ScrollPane в JavaFX

1

Мой код css для этого выглядит так, но он все еще не работает. ScrollPane?

.scroll-pane:corner > .viewport {

-fx-background-color : #191A19;

}

Есть ли проблема с моим синтаксисом или вообще проблема с портом представления не позволяет мне редактировать любой другой аспект

Теги:
java-8
javafx

2 ответа

6

Вы выбрали селектор css.

.scroll-pane:corner

выбирает узлы с классом "scroll-pane", которые активируют "угол" псевдокласса. Согласно документации css, панель прокрутки не имеет псевдоугола "corner".

.scroll-pane:corner > .viewport

выберет узел с классом "viewport", у которого был (непосредственный) родительский узел с классом "scroll-pane", и с этим родительским узлом, в котором активирован "угол" псевдослова. Итак, если что-нибудь, вы бы выбрали видовой экран здесь.

Css вам нужно

.scroll-pane > .corner {    
    -fx-background-color: #191A19 ;
}

Возможно, посмотрите на учебник общего назначения по селекторам css, например, в w3schools

Обновить полный пример:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPane.ScrollBarPolicy;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class ScrollPaneStyledCorner extends Application {

    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane();
        ScrollPane scrollPane = new ScrollPane();
        scrollPane.setPrefHeight(200);
        scrollPane.setPrefWidth(200);

        TextArea textArea = new TextArea(System.getProperty("javafx.version"));
        scrollPane.setContent(textArea);
        scrollPane.setVbarPolicy(ScrollBarPolicy.ALWAYS);
        scrollPane.setHbarPolicy(ScrollBarPolicy.ALWAYS);
        root.setCenter(scrollPane);

        Scene scene = new Scene(root);
        scene.getStylesheets().add(getClass().getResource("scrollPaneCorner.css").toExternalForm());
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

scrollPaneCorner.css:

.scroll-pane > .corner {    
    -fx-background-color: #191A19 ;
}

Изображение 174551

  • 1
    Это было бы в том случае, если у меня не было Java 8, но так как я обновил свой JRE до этого кода, который вы показали выше, не работает, как указано в этом сообщении, сделанном в прошлом месяце
  • 0
    Этот пример работает правильно в Java версии 1.8.0_144.
1

Оно работает:

.corner {    
    -fx-background-color: #363636 ;
}
  • 0
    Огромное спасибо !!! я искал это решение в течение нескольких месяцев :: :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню