JavaFX CSS não carrega

10 respostas Resolvido
javafxfront-end
T

Olá. Eu nunca trabalhei com CSS em JavaFX, e hoje eu resolvi ver como é. Eu tentei carregar de várias maneiras, porém nenhuma funcionou.

Tentei pelo código:

MainWindow m = (MainWindow) new MainWindow()
                .setTitle("Meus dados")
                .show().setMaximized();
        m.getWindow().getScene().getStylesheets().add(getClass().getResource("/css/global.css").toExternalForm());

Tentei pelo Scene Builder

Porém as propriedades não estão sendo alteradas.

Meu código CSS é esse:

@CHARSET "UTF-8";
.tab{
	-fx-background-color: white;
}
.textarea{
	-fx-background-color: rgb(243, 244, 156);
}

Alguém sabe me dizer o que eu fiz de errado?

10 Respostas

R

Tente assim :
scene.getStylesheets().add(SuaClasse.class.getResource("/empresa/com/br/styles/MainAppCss.css").toExternalForm());

T

Não funcionou. Sabe me dizer se no meu CSS não tem nada errado?

T

Não sei se ajuda mas o meu BorderPane tá assim:

A

Depende, se por exemplo no seu FXML você disser que a classe do seu componente será textarea vai dar certo, para aplicar a todos os textAreas use a tag: text-area.
No seu caso precisa de mais coisa pra funcionar, pois o textArea está dentro de um ScrollPane, por isso tem que aplicar o estilo a ele também, resumindo, seria algo assim:

.text-area{
-fx-background-color: rgb(243, 244, 156);
}

.text-area .scroll-pane .viewport{
-fx-background-color: transparent;
}

.text-area .scroll-pane .content{
-fx-background-color: transparent;
}

Não se esqueça de sempre consultar a documentação oficial:
http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html

T

Eu mudei o CSS e continuou igual.

A

Então o arquivo não está sendo aplicado. Eu sempre faço pelo SceneBuilder, seleciono o painel pai vou em Stylesheets e busco o arquivo. pra conferir se o estilo foi aplicado use o CSS Analyzer:

T

Eu carreguei dessa maneira também, e o CSS Analyser não está detectando. Porém agora eu notei uma mensagem no console:

`WARNING: CSS Error parsing file:/C:/Users/thall/workspace/Meus-Dados/target/classes/css/global.css: Expected LBRACE at [1,9]`
A
Solucao aceita

Isso é devido ao charset, não tem necessidade.

T

Valeu cara, é mesmo, eu removi a linha e funcionou.

A

Consulte a documentação para ver como trabalhar corretamente com o CSS do FX.
Veja o css desse projeto, acho que vai ajudar:

Criado 23 de fevereiro de 2017
Ultima resposta 23 de fev. de 2017
Respostas 10
Participantes 3