Изображение отображается в верхней части панели меню - PullRequest
0 голосов
/ 05 апреля 2019

Уважаемые,

Я пытаюсь сделать приложение, используя JavaFX.Но по какой-то причине, когда я пытаюсь переместить изображение, оно отображается в верхней части панели меню, но за другими панелями.И, конечно же, я бы хотел этого избежать.

(Извините, нет изображения, потому что мне не хватает репутации ...)

Я уже пытался сгруппироваться и вызватьметод toFront (), но он худший и все меняет.

Вот мой fxml

<MenuBar>
        <menus>
            <Menu text="File">
                <items>
                    <MenuItem text="Save"/>
                    <SeparatorMenuItem />
                    <MenuItem text="Return"/>
                    <MenuItem text="Quit"/>
                </items>
            </Menu>
        </menus>
    </MenuBar>

    <VBox>
        <Pane fx:id="imagePane"/>
        <HBox fx:id="buttonsPane" styleClass="white">
            <Button text="B1" prefHeight="50" prefWidth="50"/>
            <Button text="B2" prefHeight="50" prefWidth="50"/>
        </HBox>
    </VBox>

Вот мой контроллер

public void enter(Scene scene) {
        Image image = new Image("images/square.png");
        ImageView background = new ImageView(image);
        imagePane.getChildren().add(background);
        background.setTranslateX(20);
        background.setTranslateY(20);

        scene.getRoot().addEventFilter(MouseEvent.MOUSE_PRESSED, mev -> {
            int y = 0;
            switch(mev.getButton()) {
            case PRIMARY:
                y = (int) background.getTranslateY();
                background.setTranslateY(y - 6);
                break;
            case SECONDARY:
                y = (int) background.getTranslateY();
                background.setTranslateY(y + 43);
                break;
            default:
                break;
            }
        });
    }

1 Ответ

0 голосов
/ 05 апреля 2019

Я нашел решение: я поместил Панель с изображением в Табличную панель:

<TabPane rotateGraphic="true">
    <Tab closable="false">
        <Pane fx:id="imagePane"/>
    </Tab>
</TabPane>

Если честно, я не знаю, почему это работает, но работает: -)

...