2014-12-11 2 views
0

그래서 java의 다른 클래스에 값을 전달하는 데 문제가 있습니다. 사용자가 방정식을 수락하는 응용 프로그램이 있습니다. 단추를 클릭하면 방정식에 포함 된 변수 수가 확인되고 두 개의 변수에 변수가 추가됩니다. 이제이 변수들을 다른 클래스에 전달해야합니다. 여기 자바의 입력에서 배열 기본 크기를 초기화하십시오.

내가 변수를 사용할 필요가 코드의 조각이다 : beeColony.java를

public class beeColony { 
int D; 
double Foods[][]=new double[FoodNumber][D]; 
public void getDimension(int D) 
    { 
     this.D = D; 
    } 
} 

여기에서, 나는 FoodNumber와 D.에 따라 크기를 갖는에 변수 식품을 초기화 할 필요가 기반 FoodNumber는 고정 된 것이므로 아무 문제가 없습니다. 메인 프로그램 내에서

이벤트 핸들러

private void getvalueMouseClicked(java.awt.event.MouseEvent evt) { 
    bee.getDimension(dim); 
} 

I 출력 방법 중 하나 내에서 변수 D를, I는 그것이 할당 된 값과 동일

있다. 제 문제는 배열 식품의 크기입니다. 나는 IndexOutOfBounds Exception을 얻는다. 나는 배열 Foods를 초기화 할 때 D 값을 얻을 수 없다고 생각합니다.

이 문제를 해결하는 방법에 대한 의견이 있으십니까?

답변

0

getDimension()을 사용하여 값을 설정하는 이유는 무엇입니까?

이것은 새로운 클래스의 beeColony를 만들어야하고 기본값 D (0으로 설정)를 사용하는 동안 발생했습니다. 그런 다음 D 값을 사용하여 Foods 배열을 만듭니다. 이 크기 FoodNumber의 음식 배열을 만들 것 X 0

다음과 같이 나는 그것을 바꿀 것

:

public class beeColony { 
    int D; 
    double Foods[][]=null; 
    public void getDimension(int D) 
    { 
     this.D = D; 
     this.Foods = new double[FoodNumber][D]; 
    } 
} 

가}

+0

나는 차원 클래스 beeColony에서 D의 값을 설정 getDimension을 사용하고 있습니다 사용자의 입력에 따라 당신의 솔루션은 훌륭하게 작동합니다. 정말 고마워요! 나는 이것을 사용하려고 시도했다. 식품 = 새로운 Double [FoodNumber] [D] 일찍 그러나 나는 오류를 얻고 있었다. 어쩌면 제가 식품을 초기화 한 방식 이었기 때문일 수도 있습니다. 내가 한 것은 double food [] []; 다시 감사합니다! – bless1204