Witam. Dopiero zaczynam swoja przygode z Java, Mam problem z zrobieniem tła do menu.
Wiec tak stworzyłem klase ktora dziedziczy JPanel ktora rysuje mi tlo. Oraz klase ktora inicjuje mi buttony w panelu - wykorzystuje Layout. Problem jest taki ze kiedy tworze obiekty obu klas i wrzucam je do kontenera, i dodaje do szybki to pokazuje mi albo tlo albo layout z przyciskami, w zaleznosci co pozniej dodam do kontenera. Jak ten problem mozna rozwiazac? Podaje kod
class Rysowanie extends JPanel //Klasa rysowania
{
public Rysowanie()
{
super();
System.out.println("Lyypa");
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
Image img1 = Toolkit.getDefaultToolkit().getImage("tlo.jpeg");
g2.drawImage(img1, 0, 0, this);
g2.finalize();
}
}
class Panel extends JPanel /// Klasa inicjalizujaca Buttony
{
public Panel(){
sluchaczmyszy sm = new sluchaczmyszy();
setLayout(new GridBagLayout());
setBorder(BorderFactory.createLineBorder(Color.black));
GridBagConstraints c = new GridBagConstraints();
singlePlayer.addMouseListener(sm);
multiPlayer.addMouseListener(sm);
trening.addMouseListener(sm);
highscores.addMouseListener(sm);
authors.addMouseListener(sm);
exit.addMouseListener(sm);
c.fill = GridBagConstraints.BOTH;
c.ipadx = 20;
c.ipady = 10;
c.insets = new Insets(20, 50, 20, 20);
c.gridy = 1;
add(singlePlayer, c);
c.gridy = 2;
add(multiPlayer, c);
c.gridy = 3;
add(trening, c);
c.gridy = 4;
add(highscores, c);
c.gridy = 5;
add(authors, c);
c.gridy = 6;
add(exit, c);
c.gridy = 7;
//setBackground(Color.);
}
JPanel tlo = new Rysowanie();
private Container kontener = this.getContentPane();
private Panel menu = new Panel();
kontener.add(menu);
kontener.add(tlo);
Dzieki za pomoc :)