基本上我正试图通过CSS为JavaFX中的菜单栏添加颜色

时间:2018-03-27 11:10:50

标签: java html css javafx

我目前正在为大学开发一个javaFX项目。我们不能使用FXML,因此我们使用了CSS。我正在尝试在菜单栏中添加字体颜色,但我没有运气。我也尝试这样做,以便当你将鼠标悬停在菜单栏选项卡上时,它会将字体更改为蓝色。任何帮助将不胜感激。谢谢!

JavaFX代码:

final Menu homeTab = new Menu("Home");
final Menu aboutTab = new Menu("About Us");
final Menu optionsTab = new Menu("Options");
final Menu contactTab = new Menu("Contact Us");
final Menu faqTab = new Menu("FAQ");

MenuItem infoTab = new MenuItem("About the Team");
MenuItem legalTab = new MenuItem("Legal Information");
MenuItem logoutTab = new MenuItem("Logout");
MenuBar navigation = new MenuBar();

//MenuBar details

    //Details for CSS
    homeTab.setId("Home");
    aboutTab.setId("Home");
    contactTab.setId("Home");
    faqTab.setId("Home");
    optionsTab.setId("Home");

    infoTab.setId("Info");
    legalTab.setId("Legal");
    logoutTab.setId("Logout");

    //Assigning our Sub Tabs to the About/Legal tabs
    aboutTab.getItems().addAll(infoTab, legalTab);
    optionsTab.getItems().add(logoutTab);

    //Adding our tabs to our navigation bar
    navigation.getMenus().addAll(homeTab, aboutTab, contactTab, faqTab, optionsTab);
    navigation.setId("MenuBar"); 

CSS:

#MenuBar{
    -fx-padding: 1 8 2 8;
    -fx-font-size: 11pt;
    -fx-border-color: #58A4B0; 
    -fx-spacing: 70;  
    -fx-background-color: #58A4B0;
}

#Home{
    -fx-border-style: solid;   
    -fx-border-color: #FFFFFF; 
    -fx-border-radius: 8px;
}

#Home#Label{  
    -fx-text-fill: white;
}

#Home:hover{
    -fx-background-color: #FFFFFF;
    -fx-background-radius: 8px;
    -fx-border-style: solid;
    -fx-border-radius: 8px;
}

1 个答案:

答案 0 :(得分:0)

如果不进行测试,我认为您的CSS选择器不正确。

您正在设置节点的ID,但是按类调用它们。

尝试用#。

替换点

.Home:hover - > #Home:悬停

#选择id,即。类,而不仅仅是类型。

但要小心,id必须是唯一的。

编辑:因为您不止一次使用id,所以您应该分配insted类。所以保持重点,但取代homeTab.setId(“Home”); with homeTab.getStyleClass()。add(“Home”);