Witam wszystkich.
Wpierw przedstawię kod, a następnie wytłumaczę, w czym leży problem.
Posiadam klasę, która jest rozszerzeniem JFrame'a. W jej konstruktorze znajduje się
taki fragment mający na celu wyświetlić obrazek :
try
{
repaint = ImageIO.read(new File(ReturnPageName(0)));
}catch (IOException e) {
}
image = new ImageIcon(repaint);
imageLabel = new JLabel();
imageLabel.setIcon(image);
imageLabel.setVisible(true);
add(imageLabel);
setUndecorated(true);
setVisible(true);
setSize(1024, 600);
W przypadku naciśnięcia określonego klawisza ma się wykonać poniższy fragment :
SetMenuImage(1);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
SetMenuImage(2);
Gdzie SetMenuImage to :
public void SetMenuImage(int number)
{
try
{
repaint = ImageIO.read(new File(ReturnPageName(number)));
}catch (IOException e) {
}
Graphics g = repaint.createGraphics();
// do dodawania obrazków oraz tekstu do tła
g.setFont(font);
g.setColor(black);
image = new ImageIcon(repaint);
imageLabel.setIcon(image);
revalidate();
repaint();
}
Problem polega na tym, że mimo iż program wchodzi do funkcji SetMenuImage(1) po naciśnięciu klawisza, to nowy obrazek się nie pokazuje. Po odczekaniu 10 sekund pokazuje się prawidłowo obrazek z SetMenuImage(2). Jeżeli oba te wywołania zamienię miejscami, to zawsze wykona się (pokaże) tylko i wyłącznie to drugie. Jaka może być przyczyna takiej
sytuacji ?
Z góry dziękuję za odpowiedź,
Pozdrawiam,
Sarachiel
<code=java></code>