Rysowane tlo z pliku jpg przysłania inne buttony itp.

0

Witam,

Gdy rysuje tło w jframe poprzez nowy jcomponent czy przez przeładowanie metody paint w jframe, to bez różnicy od sposobu zawsze wrzuci mi buttoniki itp. a później narysuje na tym obrazek tła. Wiem, że jest to wywołane przez asynchronicznego ImageObserve-ra.

Np. w przeładowanej metodzie paint w jframe wywołuje drawImage:
g.drawImage(Stale.tloAplikacji, 0, 0, this);

Morduje się z tym już drugi dzień, może ktoś zna sposób jak zapanować nad drawImage żeby poczekało na wyrysowanie całego tła. Albo może jakiś inny sposób na ustawienie tła aplikacji ?

Z góry dzięki.

0

chodzi o to, że tło przysłania przyciski?
Wrzuć kod, jak możesz to się zobaczy co się tam dzieje

0

Przeładuj paintComponents w JPanel .. na koncu przeladowanej metody wywolaj super.paintComponents(g);

0

W końcu znalazłem błąd, wszystko tkwiło w kolejnośći dodawania elementów do ContentPane.
A mianowicie miałem:

cp.add(new Tlo());
        cp.add(new MenuLeft());

A po odwróceniu:

cp.add(new MenuLeft());
        cp.add(new Tlo());

Zaczeło działać.

Tylko trochę nie rozumiem dlaczego JComponent z tłem wrzucam na JPanela z butonami.

Poniżej już działający kod:

public class GlowneOkno extends JFrame {

    public GlowneOkno() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().
                getDefaultScreenDevice().setFullScreenWindow(this);

        setLayout(null);
        Container cp = getContentPane();
        cp.add(new MenuLeft());
        cp.add(new Tlo());


    }



    public class Tlo extends JComponent {

        public Tlo()
        {
            setBounds(0, 0, Stale.rozdzielczosc.width, Stale.rozdzielczosc.height);
        }

        @Override
        public void paintComponent(Graphics g){
            super.paintComponent(g);
            g.drawImage(Stale.tloAplikacji, 0, 0, this);
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1