2017-03-10 3 views
0

이 질문이 매우 기본적인 것처럼 보이고 이미 답변이있는 경우 미안하지만 적절한 질문을하지 않으면 Google에서 찾지 못할 것입니다.기존 클래스 간의 통신

메인 클래스가 JFrame입니다 (하나의 객체 만 있고 "main"이라고 부름). 다른 JFrame 클래스를 만들고 호출하지만 (여전히 window2라고 부름), 이 window2는 기존의 메인 클래스로부터 메소드를 호출한다. 일반적으로 window2는 Main mainMenu = new Main();과 같은 것을가집니다. 하지만 이것은 분명히 main의 새로운 객체를 생성합니다. 나는 여전히 이미 존재하는 객체를 참조하고 그것으로부터 정보를 얻고 싶습니다.

+0

관련 코드를 공유해야하지만 현재 인스턴스의 객체 참조를 가리 키려면'this' 키워드를 사용하십시오. –

+0

오브젝트 윈도우 2에서 이미 행동을 취한 경우 왜 객체 main에서 행동을 취해야하는지 잘 모르겠습니다. 코드를보고 무엇을하려고하는지 명확하게 알 수 있습니다 .. –

+0

참조 전달 'main2'를'window2'로 바꾼다 – MadProgrammer

답변

1

의존성 주입. 답변은 Main 클래스가 정적인지 여부에 따라 달라 지지만 다음과 같이 가정 해 봅시다.

  • Window2 : Main main에 기본 참조를 만듭니다.
  • Window2에서 메소드를 작성하십시오. public void injectMainInstance (main main) {this.main = main}
  • Main에는 Window2 인스턴스 window2가 있습니다. window2.injectMainInstance (this)를 호출하십시오.

main2.mainMethodTBUsed();와 Window2에 지금 가야합니다.

+0

고맙다. 네, 저의 주요 방법은 정적이 아닙니다. 나는 시작 프로그래머이며 문제를 해결하기가 훨씬 쉬울 것이라고 생각했다. 이전에 의존성 주입에 대해 들어 본 적이 없으며 이것이 올바른 방법 일지 확신도 없다. 하지만 효과가 있습니다. 고마워요. – jakubek278