Pokaż InternalFrame przed Glasspane

Dec 21 2020

Chcę, aby rama wewnętrzna była wyświetlana przed panelem szklanym. W moim programie użytkownik powinien móc kliknąć PLIK -> Ustawienia i powinna zostać wyświetlona wewnętrzna ramka. Wszystko w tle powinno być pokryte taflą szkła. Czy ktoś ma pomysł?

m21.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        Settings settings = new Settings();

        //get the InternalFrame
        settings.getFrame().setBounds(100,100,getWidth()-200, getHeight()-200);
        settings.getFrame().toFront();

        setGlassPane(new Glass());
        getGlassPane().setVisible(true);

        //get the InternalFrame
        getLayeredPane().add(settings.getFrame(), BorderLayout.NORTH);
        getLayeredPane().moveToFront(settings.getFrame());

        repaint();
    }
});

Odpowiedzi

RetoHöhener Dec 21 2020 at 14:43

Celem tafli szkła jest znajdowanie się przed wszystkim innym:

Można jednak ustawić dowolny komponent jako taflę szkła. Moją sugestią byłoby przesunięcie zawartości ramki ustawień jako szyby.