Impossible de styliser les cases horizontales ou verticales
P粉773659687
P粉773659687 2023-09-03 10:20:53
0
1
441

Très frustrant lorsque je suis des guides et des tutoriels de base. Je peux appliquer des styles CSS à différents éléments, mais pas à vbox ou hbox.

J'ai l'application simple suivante, utilisant FMXL et CSS pour créer une scène simple :

importer java.net.URL; importer javafx.application.Application ; importer javafx.fxml.FXMLLoader ; importer javafx.stage.Stage ; importer javafx.scene.Parent ; importer javafx.scene.Scene ; la classe publique BingRen étend l'application { @Passer outre public void start (Stage primaireStage) { Racine parent = null ; Chargeur FXMLLoader = new FXMLLoader(); URL xmlUrl = getClass().getResource("/BingRen.fxml"); chargeur.setLocation(xmlUrl); essayer { racine = chargeur.load(); Scène scène = new Scene(root,400,400); scene.getStylesheets().add(getClass().getResource("BingRen.css").toExternalForm()); PrimaryStage.setScene(scène); primaireStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main (String[] arguments) { lancer(arguments); } } 

À l'aide de FXML, créez simplement un BordPane et 2 HBoxes, chacune contenant une étiquette.几乎和 HellopApp 一样简单:

                 ≪/bas>   

还有CSS来设置一些基本属性:

.hbox { -fx-background-color : #00ff00 ; -fx-border-color : #00ff00 ; -fx-border-width : 2px ; -fx-rembourrage : 10 ; -espacement fx : 8 ; } .étiquette { -fx-text-fill : #0000ff ; } 

标签正确变为蓝色,但未应用 hbox 样式

事实上,这些建议都不起作用。

我尝试过:

  • 将 css 文件中的 .hbox 更改为 .Hbox
  • 在css文件中创建#allbox并添加fx-id="allbox" et fxml文件

P粉773659687
P粉773659687

répondre à tous (1)
P粉041881924

Pourquoi votre approche actuelle échoue

Voir laDocumentation CSS一个>.

PourHBox

PourTags

Par conséquent, il n'y a pas de classe de style comme ".hbox" pour HBox, à moins que vous n'en ajoutiez une, ce que vous n'avez pas encore fait.

Sélecteurs CSS et arrière-plans JavaFX

Lisez une partie du graphique de scène CSS et JavaFX intitulée":

Exemples d'application

Vous pouvez donc résoudre ce problème de trois manières :

  1. Utilisez lesélecteur de typedans les fichiers CSS :

    HBox {  }
  2. Appliquer desclasses de styledans les fichiers CSS :

    .my-hbox-styleclass {  }

    et écrivez en FXML :

    Ou écrivez dans le code :

    myHBox.getStyleClass().add("my-hbox-styleclass");
  3. AppliquerStyle IDdans le fichier CSS :

    #my-hbox-id {  }

    et écrivez en FXML :

    Ou écrivez dans le code :

    myHBox.setId("my-hbox-id");

Différence de portée du sélecteur

La signification de l'application standard diffère pour chaque méthode :

  1. Le sélecteur de typesera appliqué à tous les types de HBox dans l'interface utilisateur.
  2. Class Selectorsera appliqué à tout contenu auquel la classe de style donnée lui est appliquée.
  3. Le
  4. sélecteur d'identifiantest généralement utilisé pour les nœuds individuels dans l'interface utilisateur, plutôt que pour le type ou la classe du nœud. Il doit être unique au sein du document FXML ou de l'arborescence du graphique de scène, bien que cela ne soit pas obligatoire.
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!