Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme avec avec getter setter

    8 octobre 2011 à 12:36:00

    Bonjour



    je débute en java et j ai un petit souci de programmation alors voila j ai une jframe appeler platforme et dans une autre fenêtre un jpanel rond .
    dans se jpanel rond j ai une variable e que je doit récupérer dans plateforme pour la mettre dans un jlabel .

    voila se que j ai fait dans rond il n y pas tous le code .

    public class Rond extends JPanel implements Runnable,MouseListener,ActionListener{

    private int x = -50, y = -50;
    private Thread c1 = new Thread(this);
    private int i = 0;
    private int e = 60;
    private int scores = 0;
    private Timer min = new Timer(1000,this);

    e doit se décrémenter avec mon timer min

    @Override
    public void actionPerformed(ActionEvent o) {

    e-- ;
    System.out.println(e);
    while(e==0)min.stop();
    }

    /*----------getter setter-------------*/

    public int getE() {return e;}
    public void setE(int e) {this.e = e;}


    et la se que j ai dans plateforme


    public class Platforme extends JFrame implements ActionListener {

    private Container c;
    private JPanel jp ;
    private JButton start , quitter , arreter , ok , ok1;
    private JLabel joueur , lbscores , choix ,level , lab , time;
    private JTextField nom , levels;
    private JTextArea scores ;
    private JRadioButton carree , rond ;
    private ButtonGroup gb ;
    private Rond r1 ;
    private boolean st = false;

    time = new JLabel(Rond.getE()+"") ; ici il me demande de passer la variable getE en static
    time.setBounds(10,10,100,30);
    c.add(time);

    donc mon problème c est que je n arrive pas récupérer ma variable e qui débute a 60 et va jusqu’à a 0 dans mon action actionPerformed . si passe getE en static la valeur de e afficher dans mon jlabel de ma class plateforme reste a 60 et ne décrémente pas . pouvez vous m aider ? si je ne suis pas clair dit le moi .
    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2011 à 13:06:04

      Merci d'utiliser les balises CODE ;)

      time = new JLabel(Rond.getE()+"") ; //ici il me demande de passer la variable getE en static
      


      C'est normal car tu n'as pas instancié ta classe Rond

      Dans la déclaration de ta variable mais ceci:
      private Rond r1= new Rond();
      time = new JLabel(r1.getE()+"");
      


      Si tu veux mettre ta classe Rond Statique, tu changes la porté de ta classe Rond. Et dans ce cas ton code est juste.

      • Partager sur Facebook
      • Partager sur Twitter
        9 octobre 2011 à 13:19:55

        merci de ton aide

        j ai fait comme tu me la indiquer . je n ai plus mon problème de static mais la valeur reste bloquer a 60.,elle ne décrémente pas dans le jlabel . il faut que je puisse récupérer ma valeur e qui se décrémente dans mon action performed

        voila tous mon code de rond

        import java.awt.BasicStroke;
        import java.awt.Color;
        import java.awt.Graphics;
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
        import java.awt.event.MouseEvent;
        import java.awt.event.MouseListener;
        
        import javax.swing.ImageIcon;
        import javax.swing.JLabel;
        import javax.swing.JPanel;
        import javax.swing.Timer;
        
        public class Rond extends JPanel implements Runnable,MouseListener,ActionListener{
        
        	private int x = -50, y = -50;               // valuer de depart du rond
        	private Thread c1 = new Thread(this);
        	private int i = 0;
        	private int e = 60;                         // variable timer
        	private int scores = 0;  //variable scores 
        	private Timer min = new Timer(1000,this);   // declaration du timer 
        
        	public Rond(){
        		
        		c1.start();                         //  demarage du thread 
        		this.addMouseListener(this);  
        		min.start();                    // demarage du timer 
        		
        	}
        
        /*-----------creation de mon rond-----*/
        	
        	public void paintComponent(Graphics g){
        
        		g.setColor(Color.white);              
        		g.fillRect(0, 0, this.getWidth(), this.getHeight());               
        		g.setColor(Color.red);
        		g.fillOval(x, y, 50, 50);  
        	}
        /*-----------boucle rond----------------*/	
        	
        	public void run() {
        
        		boolean backX = false;          
        		boolean backY = false;           
        
        		while(true){
        
        			if(x < 1)backX = false;              
        			if(x > getWidth()-50)backX = true;                   
        			if(y < 1)backY = false;
        			if(y > getHeight()-50)backY = true;     // deplacement du rond                
        
        			if(!backX)
        				++x;               
        			else
        				--x;                          
        			if(!backY)
        				++y;
        			else
        				--y;
        
        			repaint();   // repaint du rond
        
        			try {
        				Thread.sleep(3);
        			} catch (InterruptedException e) {
        				// TODO Auto-generated catch block
        				e.printStackTrace();
        			}
        		}
        
        	}
        	@Override
        	public void mousePressed(MouseEvent e) {
        
        		double distance ;	
        		int r = 50 ;
        		distance = Math.sqrt((e.getX() - x)*(e.getX() - x)+(e.getY() - x)*(e.getY() - x)); // calcule du click
        		if(distance < r){
        			i++;
        			scores = i * 10 ; // calacule scores
        		}
        		System.out.println(i);
        		System.out.println(scores);
        	}
        	
        	@Override
        	public void actionPerformed(ActionEvent o) { 
        		
        				e-- ;      //decrementation de e
        				System.out.println(e); 
        				if(e==0)min.stop();           //fin du timer
        				
        	}
        	
        	@Override
        	public void mouseReleased(MouseEvent arg0) {}
        	@Override
        	public void mouseClicked(MouseEvent e) {}
        	@Override
        	public void mouseEntered(MouseEvent arg0) {}
        	@Override
        	public void mouseExited(MouseEvent arg0) {}
        	
        	/*----------getter setter-------------*/
        	
        	public int getE() {return e;}
        	public void setE(int e) {this.e = e;}
        	public int getScores() {return scores;}
        	public void setScores(int scores) {this.scores = scores;}
        }
        


        • Partager sur Facebook
        • Partager sur Twitter
          10 octobre 2011 à 11:03:30

          j espéré que c est mieux la ?

          dsl c est la 1ere fois que je poste un code :p
          • Partager sur Facebook
          • Partager sur Twitter

          probleme avec avec getter setter

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown