2009-08-28 4 views
2

이것은 아마도 매우 간단한 문제 일 수 있지만 어떻게해야하는지 알 수 없습니다.Java : 클래스간에 변수 전달

나는 comboboxes 및 슬라이더에서 변수를 가져 오는 수신기가있는 GUI 클래스가 있습니다. 이러한 변수를 해당 클래스의 객체에서 실행될 다른 클래스의 메소드에 전달해야합니다.

어떻게하면됩니까?

+0

"? –

답변

4

두 가지 일반적인 접근 방식이 있습니다. 대화 상자에 자주 사용되는 단순한 값은 선택한 값 (예 : 콤보 상자 선택)을 다른 클래스에 사용할 수있게 해주고, 두 번째 클래스는 다른 클래스가 개체에 등록하여 업데이트 알림을 받도록 허용합니다.

첫 번째 방법

  1. 저장 (개인) 멤버 변수에 GUI 요소의 실제 선택 (같은 : private String currentSelection). 이것은 이미 구현 한 리스너에 의해 수행됩니다.
  2. 당신을위한 대화 상자를 제공하는 경우 단순히 getSelection() 방법을이 사용할 수

를 호출하여 값을 가져, (누군가가 OK 버튼을 누르면 같은) 대화 상자가 완료 String getSelection()

  • 같은 메소드를 구현 사용자가 일부 값을 입력 할 수 있습니다. 파일 선택기 대화 상자는 일반적인 예입니다. 옵저버 패턴 (리스너 클래스, 결국 이벤트 클래스)
  • 을 구현

    두 번째 방법

    1. : 현재 선택에 '실시간 액세스를 필요로하는 경우, 다음을 사용 패턴은 조금씩 단계적으로 자세하게 설명하기에는 너무 복잡하지만, 실제로 변경 사항에 대한 실시간 액세스가 필요하다면 많은 문서와 예제가 필요합니다.

    1

    간단한 데이터 클래스 (커플 링을 최소화하기 위해 인터페이스가있는 것이 가장 이상적 임)가 트릭을 수행해야합니다. 또는 데이터 멤버 이름 등이 런타임에 달라지는 경우 java.util.Map이 적합 할 수 있습니다.

    1

    상태가 변경 될 때 Java의 Observer을 사용하고 개체를 인수로 전달할 수 있습니다.

    0

    매개 변수를 사용하십시오.

    otherObject.doStuff(comboBoxValue, slider1Value, slider2Value); 
    

    당신이 전달하려는 매개 변수의 수를 수용 선언해야 호출하고있어서

    "클래스의 개체에서 실행되는 다른 클래스의 메소드 무엇
    class OtherObject { 
        ... 
        void doStuff(int value1, int value2, int value3); 
    }