problem z paint()?

0

Mam klase , w konstruktorze laduje sobie :

...

 
GridBagLayout gbag = new GridBagLayout(); 
GridBagConstraints gbc = new GridBagConstraints(); 
setLayout(gbag); 
gbc.weighty = 1.0; // waga wiersza równa 1 
gbc.gridwidth = GridBagConstraints.REMAINDER; 
gbc.anchor = GridBagConstraints.NORTH;
logo dominet= new logo();
gbc.anchor = GridBagConstraints.WEST; 
gbag.setConstraints(dominet, gbc);
gbc.anchor = GridBagConstraints.CENTER; 
gbag.setConstraints(heading, gbc); 
gbag.setConstraints(heading1, gbc);
	...
	...
	...
add(dominet);  
add(heading);  
add(heading1);

setSize(600,600);
setLocation(100,50);
setVisible(true);

i klase logo:

import java.awt.*;
public class logo extends Canvas{
	
Image obraz =Toolkit.getDefaultToolkit().getImage("logo.png");
	
public logo()
{
setSize(200,45);
setVisible(true);
}

public void paint(Graphics d)
{
 d.drawImage(obraz,5,5,null);
}

}

problem polega na tym ze logo pojawia sie dopiero gdy glowne okno zminimalizuje i znowu przywroce. w jaki spsosb sobie z tym poradzic ??

0

trzeba pewnie dać gdzieś repaint() np. zaraz po dodaniu tego loga.

0

jeśli to logo będzie jedynie statyczne, tzn nie będziesz nic z nim robił w dalszej części t odpuść sobie canvas na rzecz np. jlabel:

JLabel dominet= JLabel(new ImageIcon("obraz.jpg"));
add(dominet);

to zadziała na pewno!!

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