Username: Password: oppure
Java - aiuto loop e bottoni
Forum - Java - aiuto loop e bottoni

Avatar
esploratore8 (Normal User)
Newbie


Messaggi: 1
Iscritto: 11/02/2009

Segnala al moderatore
Postato alle 13:36
Mercoledė, 11/02/2009
Ciao a tutti io ho questo code:
Classe characters:

Codice sorgente - presumibilmente Java

  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.Image;
  4. import java.awt.Toolkit;
  5. import java.awt.image.BufferedImage;
  6.  
  7. import javax.swing.JFrame;
  8. import javax.swing.JPanel;
  9.  
  10. public class Characters extends Thread {
  11.    private int x;
  12.    private int y;
  13.    private JPanel frame;
  14.    private Image im;
  15.    public Characters(int a,int b) {
  16.       x = a;
  17.       y = b;
  18.    }
  19.    
  20.    public Characters(int i, int j, JPanel frame,String path) {
  21.       this(i,j);
  22.       this.frame = frame;
  23.       im = Toolkit.getDefaultToolkit().getImage (path);
  24.    }
  25.  
  26.    @Override
  27.    public void run() {
  28.  for (int i = 0; i < 22; i = i + 1) {
  29.        
  30.           y += i;
  31.          
  32.          try {
  33.             Thread.sleep(200);
  34.            
  35.          } catch (InterruptedException e) {
  36.             // TODO Auto-generated catch block
  37.             System.out.println(i);
  38.          }
  39.       }
  40.    
  41.    }
  42.  
  43.    public void draw(Graphics graphics){
  44.       graphics.setColor(Color.red);
  45.      
  46.       //qui metti l imagel
  47.       //graphics.drawImage(.....)
  48.       graphics.drawImage(im, x, y,frame);
  49.    }
  50.    
  51. }



Classe main:

Codice sorgente - presumibilmente Java

  1. import java.awt.BorderLayout;
  2. import java.awt.Component;
  3. import java.awt.Dimension;
  4. import java.util.LinkedList;
  5.  
  6. import javax.swing.JFrame;
  7.  
  8.  
  9. public class Main {
  10.  
  11.    private JFrame frame;
  12.    private static final String[] paths = {"/Users/federicobarassi/NetBeansProjects/OK/src/ok/java1.gif",
  13.       "/Users/federicobarassi/NetBeansProjects/OK/src/ok/java2.gif",
  14. "/Users/federicobarassi/NetBeansProjects/OK/src/ok/java3.gif",
  15. "/Users/federicobarassi/NetBeansProjects/OK/src/ok/java4.gif"};
  16.    
  17.    public Main() {
  18.       frame =  new JFrame("Piove");
  19.       frame.setSize(new Dimension(300,300));
  20.       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  21.       frame.setLayout(new BorderLayout());
  22.       frame.getContentPane().add(getFilledCPanel(),BorderLayout.CENTER);
  23.      
  24.       frame.setVisible(true);
  25.    }
  26.    
  27.    private Component getFilledCPanel() {
  28.       CustomPanel panel = null;
  29.       LinkedList<Characters> list = new LinkedList<Characters>();
  30.       for (int i = 0; i < paths.length; i++) {
  31.          list.add(new Characters((i*80),0,panel,paths[i]));
  32.       }
  33.       panel = new CustomPanel(list);
  34.       for (Characters characters : list) {
  35.          characters.start();
  36.       }
  37.       return panel;
  38.    }
  39.  
  40.    public static void main(String[] args) {
  41.       new Main();
  42.    }
  43. }



Classe CustomPanel:

Codice sorgente - presumibilmente Java

  1. import java.awt.Color;
  2. import java.awt.Dimension;
  3. import java.awt.Graphics;
  4. import java.util.LinkedList;
  5.  
  6. import javax.swing.JPanel;
  7.  
  8. public class CustomPanel extends JPanel {
  9.    
  10.    private LinkedList<Characters> list;
  11.    
  12.    public CustomPanel() {
  13.       setSize(new Dimension(300,300));
  14.       setBackground(Color.white);
  15.    }
  16.  
  17.    public CustomPanel(LinkedList<Characters> a){
  18.       this();
  19.       list = a;
  20.    
  21.    }
  22.  
  23.    
  24.       @Override
  25.    protected void paintComponent(Graphics g) {
  26.       super.paintComponent(g);
  27.       for (Characters c : list) {
  28.          c.draw(g);
  29.       }
  30.       repaint();
  31.    }
  32. }



Vorrei mandare l'azione che fa andare dall'alto verso il basso le immagini(e non viceversa) in loop infinito. Poi non riesco ad aggiungere un bottone che da il play al tutto. Qualcuno riuscirebbe a darmi una mano??
Grazie mille

PM Quote