Aqui está meu trecho de código JavaFX:
<stylesheet value="colours.css" />
Isso está dentro de um objeto GridPane, logo após a linha com a tag GridPane.
O IntelliJ diz que não consegue compilar o símbolo "stylesheet" e que o atributo value não é permitido. Também recebo um erro muito longo quando tento executá-lo.
Tentei pesquisar no SO e online (não sou muito bom em usar javaFX) e alterei o "valor da folha de estilo" para outras coisas algumas vezes (não lembro exatamente o que), mas nada funcionou.
A propriedade para a qual você está tentando definir um valor é uma "propriedade de lista somente leitura" chamada
stylesheets
(nãostylesheet
).Isso significa que a propriedade mapeia para um método (definido na
Parent
classe) chamadogetStylesheets()
, que retorna aList
e não possuisetStylesheets()
um método correspondente. (Isso faz sentido, pois você pode ter várias folhas de estilo para um único elemento FXML.) A maneira como isso é tratado peloFXMLLoader
é adicionar o(s) valor(es) que você especificar para a propriedade à lista.Com algumas exceções, geralmente não faz sentido fornecer um atributo a um elemento de propriedade. Portanto,
<stylesheets value="..." />
não faz muito sentido aqui. Você deve usar<stylesheets>location</stylesheets>
. Definir o local correto em FXML para o arquivo CSS pode ser um pouco complicado. Você pode usar algo comoIsso pressupõe que o arquivo CSS esteja no mesmo pacote que o arquivo FXML. Consulte a documentação sobre resolução de localização para obter mais detalhes.
Observe que você também pode especificar o CSS como um atributo de propriedade, em vez de uma instância de propriedade, o que pode ser mais fácil: