Ciao grazie per le dritte... Mi hanno passato il code per il jbutton ma le mie immagini compaiono prima del click sul bottone ed essendo gif animate con un tempo prestabilito in modo che quando arrivano al margine basso del display esplodono non va bene. Si potrebbe farle comparire solo al momento del click ?? Quindi quando si schiaccia lo start compaiono le gif e parte il movimento.
il code è questo
Classe Main:
codice:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Main implements ActionListener{
private JFrame frame;
private LinkedList<Characters> list;
private boolean isStart = false;
private static final String[] paths = {"/Users/federicobarassi/NetBeansProjects/OK/src/ok/java1.gif",
"/Users/federicobarassi/NetBeansProjects/OK/src/ok/java2.gif",
"/Users/federicobarassi/NetBeansProjects/OK/src/ok/java3.gif",
"/Users/federicobarassi/NetBeansProjects/OK/src/ok/java4.gif"};
public Main() {
frame = new JFrame("Piove");
frame.setSize(new Dimension(300,300));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.getContentPane().add(getFilledCPanel(),BorderLayout.CENTER);
JButton button = new JButton("start");
button.addActionListener(this);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(button,BorderLayout.CENTER);
panel.add(new JLabel("-------->"),BorderLayout.WEST);
panel.add(new JLabel("<--------"),BorderLayout.EAST);
frame.getContentPane().add(panel,BorderLayout.SOUTH);
frame.setVisible(true);
}
private Component getFilledCPanel() {
CustomPanel panel = null;
list = new LinkedList<Characters>();
for (int i = 0; i < paths.length; i++) {
list.add(new Characters((i*40),0,panel,paths[i]));
}
panel = new CustomPanel(list);
return panel;
}
public static void main(String[] args) {
new Main();
}
public void actionPerformed(ActionEvent e) {
if(!isStart)
for (Characters characters : list) {
characters.start();
}
isStart = true;
}
}