2017-03-15 16 views
-1

問題があります。別のクラスからアクセスしようとするグローバルな静的静的値を格納しようとします。クラスから静的変数への値を別のクラスに保存する

私はボタンイベントからの機能を持っています。私は、メインクラス内の関数を呼び出すとき

import static monopoly.Interface.zar1; 
import static monopoly.Interface.zar2; 


public class Move { 

public int rolezar1; 
public int rolezar2; 
public int location=0; 
public int overstart=0; //after start 
public int untilstart=0; //until start 
public int locbefore=0; //save location before passing over start 

public void End(java.awt.event.ActionEvent evt) {          

}         

public void RollAction(java.awt.event.ActionEvent evt) {          

    Dice dice = new Dice(); 

    rolezar1 = dice.RollDice(); 
    rolezar2 = dice.RollDice(); 
    zar1.setText(Integer.toString(rolezar1)); 
    zar2.setText(Integer.toString(rolezar2)); 

    Integer pfinal = rolezar2 + rolezar1; 

    int[] posx = new int[]{95, 145, 195, 245, 295, 345, 395, 445, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 445, 395, 345, 295, 245, 195, 145, 95, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45}; 
    int[] posy = new int[]{60, 60, 60, 60, 60, 60, 60, 60, 60, 110, 160, 210, 260, 310, 360, 410, 460, 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, 460, 410, 360,310, 260, 210, 160, 110, 60}; 

    int i = 0; 

    int loc = rolezar1 + rolezar2; 
    while(i <loc){ 
     int j=0; 
     if (i+location==posx.length){ 
      untilstart=posx.length-location; 
      overstart=loc - untilstart; 
      locbefore=location; 
      location=0; 
     } 
     else{ 
      overstart=0; 
      untilstart=0; 
     } 
     while(j<untilstart){ 
      Interface.Player1.setBounds(posx[locbefore+j], posy[locbefore+j], 20, 20); 
      j++; 
      i++; 
     } 
     j=0; 
     while(j<overstart){ 
      Interface.Player1.setBounds(posx[location+j], posy[location+j], 20, 20); 
      j++; 
      i++; 

     } 
     if(overstart==0&&untilstart==0){ 
      Interface.Player1.setBounds(posx[location+i], posy[location+i], 20, 20); 
      i++; 
     } 

    } 
    location+=overstart; 

}          


public void move(){ 

} 

} 

変数は保持されません、それは最新の値にだ

private void RollActionPerformed(java.awt.event.ActionEvent evt) {          
    Move apel = new Move(); 

    apel.RollAction(evt); 
    } 

今の質問:私が正しく、メインクラスのクラスの移動からの変数を使用できますか。このコードをMainクラスに置くと、それが動作します。

+1

と静的変数はどこですか? – SomeJavaGuy

+0

メインクラスです。 public static javax.swing.JLabel Player1 – Gradin98

+0

作成した* apel *インスタンスから値を取得できます int location = apel.location; – RobCo

答えて

0

Moveクラスに静的メンバーが見つかりません。クラス属性変数のみが存在します。

このような他のクラスのメンバーと一緒に移動するメンバー、未方法ローカルI、

Dice dice = new Dice();を切っeとし、それを過ぎてサイコロを作成してみてください

public int rolezar1; 
public int rolezar2; 
public int location=0; 
public int overstart=0; //after start 
public int untilstart=0; //until start 
public int locbefore=0 
Dice dice = new Dice() // Now this may work 
を期待通りにプログラムを実行させるには
関連する問題