2012-04-18 2 views
-2

내 기본 코드에 내 GUI를 연결하는 작업을하고 있습니다. 실제로 모든 작업을 수행하는 Model이라고 부릅니다.다른 클래스의 인스턴스를 공유하는 여러 클래스

[프레임이라고 부르 자] 프레임 클래스를 만들었습니다.이 프레임에는 3 개의 패널이 있습니다. [프레임 안에 클래스가 중첩되어 있습니다.

GUI의 모든 컨트롤이 함께 작동하도록하려면 &이 모델의 한 인스턴스에서 작동하므로 &을 만들어 프레임에서 모델을 인스턴스화했습니다.

그러나 패널의 Model 인스턴스에서 작업을 호출하려고하면 NullPointerExceptions가 발생합니다. 내 디자인에 본질적으로 잘못된 것이 있는지, 아니면 내 코드인지는 잘 모르겠습니다. 내가 말한 디자인이 효과가 있을지, 아니면 더 좋은 방법이 있는지 궁금합니다.

죄송합니다. 바보 같은 질문 인 경우, &에 미리 감사드립니다.

+4

코드는 어디에 있습니까? – Torious

+0

코드로 설명하지 않으면 | 정확히 무슨 일이 일어날 지 추측하려고 노력할 것입니다. 아무에게도 도움이되지 못합니다. – Dan

+0

코드를 추가하려고했으나 많은 문맥없이 그 벽이 끝나기 때문에, 문제를 설명하십시오. – gideonparanoid

답변

1

잘못된 아이디어 .. 좋은 아이디어는 패널의 별도 클래스를 만들고 인스턴스화하는 동안 프레임 객체를 전달하는 것입니다. jPanel1가 JPanel의 클래스 인 경우

같은

뭔가, JPanel1 jPane1=new jPane(this);

이 작동합니다 .. 난 그냥 일한으로 패널의 객체를 생성, 프레임 클래스 내부

public class JPanel1 extends JPanel{ 
      private Frame parent; 
      public JPanel1(Frame parent){ 
       this.parent=parent; 
       initComponents(); 
      }... 

로 정의 1 프레임이 약 15 개의 패널을 처리하는 응용 프로그램에서. 이것은 훌륭한 디자인으로 작동합니다.

0

좋아요, 문제를 해결했습니다. 내 설계보다 코드에 더 많은 영향을 미쳤습니다. 아마 내 코드를 게시 했어야하지만 사람들이 5 백 줄 + 코드를 훑어 봐야한다는 것을 원하지 않았습니다. 대부분은 컨텍스트에서 벗어났습니다.

내가 모델을 변수 중 하나로 내 패널에 넣었으므로 메소드를 호출 할 때마다 프레임에서 인스턴스화 된 Model에서 호출하지 않을 것이고 패널.

아마추어 프로그래머의 아마추어 실수.

관련 문제