Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Animazione con Thread...

    Sto cercando di simulare il movimento di un punto nel piano mediante l'uso di Thread, ma questi non si muove!!

    codice:
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.text.*;
    import javax.swing.undo.*;
    import java.util.*;
    import java.text.NumberFormat;
    import java.util.Locale;
    import java.lang.*;
    
    public class BallTest {
    
      public static void main(String argv[]) {
    		
    	ballFrame frame = new ballFrame();
    	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	//quando viene chiuso il frame si esce dal programma
    	frame.show();	//Visualizza la finestra
      }//main
    }//BallTest
    
    /**
    	Crea un frame di ampiezza WIDTH ed altezza HEIGHT, acquisendo la risoluzione video
    	lo presenta a partire ad 1/4 delle sue coordinate.
    */
    class ballFrame extends JFrame{
    
    	public ballFrame(){
    		//prende le dimensioni dello schermo
    		
    		Toolkit kit = Toolkit.getDefaultToolkit();
    		//restituisce le dimensioni dello schermo del client come oggetto Dimension
    		Dimension screenSize = kit.getScreenSize();
    		int screenHeight = screenSize.height;	//ampiezza dello schermo
    		int screenWidth = screenSize.width;
    		setSize(WIDTH, HEIGHT);	//Inposta la grandezza del frame
    		setLocation(screenWidth/4, screenHeight/4);	//fa partire il frame da 1/4 del video
    		setResizable(true);	//imposta che il frame non può essere ridimensionato
    		Image img = kit.getImage("grafo.gif"); //imposta l'icona ed il titolo
    		setIconImage(img);
    		setTitle("BALLL");
    		
    		//aggiunge un pannello al frame
    		Container contentPane = getContentPane();
    		ballPanel panel = new ballPanel();
    		contentPane.add(panel);
    		
    	}//clumpFrame
    	
    	public static final int WIDTH = 500;	//Ampiezza Frame
    	public static final int HEIGHT = 350;	//Altezza Frame
    	
    }//ballFrame
    
    
    class ballPanel extends JPanel implements Runnable {
      Thread runner;
      int x,y;
    
      public void start() {
        if( runner==null ) {
          runner=new Thread(this);
          runner.start();
        }
      }
    
      public void stop() {
        if( runner!=null ) {
          runner.stop();
          runner=null;
        }
      }
    
      public void run() {
        int i=0;
    
        for(x=0; x<=255; x++) {
          y=x;
    
          repaint();
          try { Thread.sleep(100); }
          catch( InterruptedException e ) { }
        }
      }
    
      public void paint(Graphics g) {
        g.fillOval(x,y,20,20);
      }
    }
    Giuseppe SPECCHIO

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    66
    ciao ho dato un'occhiata veloce al codice

    prova a implementare public void paintComponent(Graphics g) {g.......;}

    perche il repaint mi sembra che chiami questo metodo!!!
    ArdDes Art of Web Design... www.arddes.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.