Как оживить стеклянную панель своей формой? - PullRequest
0 голосов
/ 01 июля 2019

Когда отображается Form и вызывается метод show другого Form, новый Form анимирует поверх старого.

Однако стеклянная панель, очевидно, не участвует ванимация, которая выглядит странно.

Есть ли способ заставить стеклянную панель участвовать в анимации?

Вот код:

    Form hi = new Form("Hi World", BoxLayout.y());
    hi.add(new Label("Hi World"));
    hi.setGlassPane(new Painter() {
        @Override
        public void paint(Graphics aGraphics, Rectangle aRectangle) {
            int width = hi.getWidth();
            int height = hi.getHeight();
            int size = Math.min(width, height) * 2 / 3;
            aGraphics.setColor(0xff0000);
            aGraphics.fillRoundRect((width - size) / 2, (height - size) / 2, size, size, size / 4, size / 4);
        }
    });
    hi.getToolbar().addCommandToRightBar(new Command("Other") {
        @Override
        public void actionPerformed(ActionEvent aActionEvent) {
            Form form = new Form("Other Form");
            form.getToolbar().addCommandToLeftBar(new Command("Back") {
                @Override
                public void actionPerformed(ActionEvent aActionEvent) {
                    hi.showBack();
                }
            });
            form.setGlassPane(new Painter() {
                @Override
                public void paint(Graphics aGraphics, Rectangle aRectangle) {
                    int width = hi.getWidth();
                    int height = hi.getHeight();
                    int size = Math.min(width, height) * 2 / 3;
                    aGraphics.setColor(0x2020ff);
                    aGraphics.fillRoundRect((width - size) / 2, (height - size) / 2, size, size, size / 4, size / 4);
                }
            });
            form.show();
        }
    });
    hi.show();

1 Ответ

0 голосов
/ 02 июля 2019

Это не поддерживается в текущей реализации CommonTransitions. Возможно, в этот класс можно добавить специальный случай, который обнаружит стеклянную панель и закрасит ее сверху.

...