在JavaSwing中创建幻灯片
我正在尝试用Java Swing
创建幻灯片。
我首先实现了一个类PicturePanel
public class PicturePanel extends JPanel {
private int counter = 0;
private ImageIcon[] images = new ImageIcon[10];
private JLabel label;
public PicturePanel()
{
for(int i = 0 ; i <images.length;i++)
{
images[counter] = new ImageIcon("check.png");
label = new JLabel();
add(label);
Timer timer = new Timer(100, new TimerListener());
}
}
private class TimerListener implements ActionListener {
public TimerListener() {
}
@Override
public void actionPerformed(ActionEvent ae) {
counter++;
//counter% =images.length;
label.setIcon(images[counter]);
}
}
}
然后我在我的Jframe
中通过以下代码调用这个类:
panProfil= new PicturePanel();
panProfil
在我的表格中是一个Jpanel
当我运行我的项目时,我没有得到任何错误,但是我的表单中没有任何内容。有人能给我指出正确的方向吗
# 1 楼答案
# 2 楼答案
所以你还没有开始你的
Timer
这就是问题所在(正如@ItachiUchiha指出的)。但是你需要做的另一件事是知道什么时候stop()
这个Timer
或者它会继续运行在创建
Timer
之后,您希望在构造函数中start()
它。在你ActionListener
中,为了阻止它,你会想做这样的事情如果您想从主GUI类访问
Timer
,以便控制它,那么您需要为它设置一个getter
,并全局声明它然后可以从主GUI类启动和停止它
而且,我不认为每次迭代都创建一个
JLabel
并将其添加到JPanel
中有什么意义。你只需要一个