2013-02-11 3 views
-3

obtenu un étrange, j'ai une variable t je l'utilise dans une classe, il change, (par exemple 1 devient 5) et puis je l'appelle d'une autre classe à utiliser dans cette classe, problème est t est toujours 0 quand il est passé, ce que je fais malVariable ne passant pas dans une autre classe Java

ici est t dans la classe où il est édité

public int t = 1; //defualt value for amount of seconds in the future the job should wait untill sent 

    public int getT() { 
     return (t); 
    } 

    public void setT(int t) { 
     this.t = t; 
    } 

et c'est la classe que j'utilise qui appelle t de la classe ci-dessus à utiliser:

public class DealyTillPrint { 

    public int t; 

    public String CompletefileName; 
    private String printerindx; 
    private static int s; 
    private static int x; 
    public static int SecondsTillRelase; 

    public void countDown() { 
     System.out.println("Countdown called"); 
     s = 1; // interval 
     t = (t * 60); // number of seconds 
     System.out.println("t is : " + t); 
     while (t > 0) { 
      System.out.println("Printing in : " + t); 
      try { 
       Thread.sleep(s * 1000); 
      } catch (Exception e) { 
      } 
      t--; 
     } 

et voici où je mis t en utilisant un fileur

<p:spinner min="1" max="1000" value="#{printerSettings.t}" size ="1"> 
        <p:ajax update="NewTime"/> 
       </p:spinner> 

Comment puis-je appeler t où la valeur est passée ce n'est pas zéro

+5

Vous n'avez montré aucun code où 'setT' ou' getT' sont appelés. –

+2

Toutes les variables appelées 't' entre les classes ne sont pas identiques ... – assylias

+1

vous avez simplement créé une nouvelle variable nommée t dans votre classe DealyTillPrint, vous n'utilisez pas le' t' de l'autre classe – PermGenError

Répondre

1

En DealyTillPrint vous déclarez public int t; Ce t est différent de celui du t vous déclarez dans le premier exemple de code. Puisque vous ne lui donnez aucune valeur, sa valeur par défaut est 0. Vous ne faites rien pour partager t dans le premier échantillon avec t dans le deuxième échantillon.

changement t = (t * 60); // number of seconds à t = (printerSettings.getT() * 60);

+0

Merci, je comprends maintenant que :), comment puis-je partager t avec le premier segment de code à la seconde – user2061913

+0

mis à jour pour répondre à votre question – digitaljoel

+0

Merci d'avoir essayé cela et je reçois 'méthode non statique getT() ne peut être référencé à partir d'un contexte statique' – user2061913

0

Vous devez obtenir l'objet printerSettings de la page Web dans votre objet DealyTillPrint. Je ne peux pas vous dire comment faire cela en regardant le code que vous avez soumis.

Questions connexes