首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX ChoiceBox in a MenuBar

JavaFX ChoiceBox in a MenuBar
EN

Stack Overflow用户
提问于 2016-08-07 18:54:45
回答 1查看 604关注 0票数 0

我用JavaFX做了一个应用程序。

我希望在我的顶部的ChoiceBox中有一个MenuBar来选择语言。当选择语言控件时,我希望禁用蓝色环境。我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-07 22:33:29

将包含IdMenuChoiceBox设置为transparent,并使用以下CSS:

代码语言:javascript
复制
#transparent:hover,
#transparent:focused,
#transparent:showing {
    -fx-background: transparent;
}

不幸的是,我还没有弄清楚如何将transparent作为一个类来实现。

示例

输出:

代码:

代码语言:javascript
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class Foo extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Menu fileMenu = new Menu("File");

        ChoiceBox<String> languageBox = new ChoiceBox<String>();
        languageBox.getItems().addAll("English", "Deutsch");

        Menu languageMenu = new Menu();
        languageMenu.setId("transparent");
        languageMenu.setGraphic(languageBox);

        MenuBar menuBar = new MenuBar();
        menuBar.getMenus().addAll(fileMenu, languageMenu);

        BorderPane root = new BorderPane();
        root.setTop(menuBar);

        Scene scene = new Scene(root);
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());

        stage.setScene(scene);
        stage.setTitle("MCVE");
        stage.setWidth(640);
        stage.setHeight(480);
        stage.show();
    }

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

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38817465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档