パネルを含むメインフレームがあります。このパネルには、アプリケーションが実行されている限りラベル イメージを変更するスレッドが必要です...
ランナブルを実装するパネルを作成し、メインフレームでこのパネルのインスタンスを作成すると、アプリケーションは無限ループに入ります...私のコードは次のとおりです。
public mainFrame()
{
BanerPanel baner = new BanerPanel();
baner.run();
}
public class Banner_Panel extends JPanel implements Runnable {
public Banner_Panel() {
initComponents();
imgPath = 2;
imgLbl = new JLabel(new ImageIcon(getClass().getResource("/Photos/banner_4-01.png")));
add(imgLbl);
//run();
}
@Override
public void run() {
while(true)
{
try {
while (true) {
Thread.sleep(3000);
switch(imgPath)
{
case 1:
imgLbl.setIcon(new ImageIcon(getClass().getResource("/Photos/banner_4-01.png")));
imgPath = 2;
break;
case 2:
imgLbl.setIcon(new ImageIcon(getClass().getResource("/Photos/banner_1-01.png")));
imgPath = 3;
break;
case 3:
imgLbl.setIcon(new ImageIcon(getClass().getResource("/Photos/banner_2-01.png")));
imgPath = 4;
break;
case 4:
imgLbl.setIcon(new ImageIcon(getClass().getResource("/Photos/banner_3-01.png")));
imgPath = 1;
break;
}
}
} catch (InterruptedException iex) {}
}
}