2014-04-19 6 views
1

JDialog를 만들고 JFrame을 전달했습니다.Jdialog에서 Jframe으로 전달

for (int i = 0; i < digiProdRadioBtns.length; i++) { 
     if (digiProdCheck[i].isSelected()) { 

      ProdDialog a = new ProdDialog(digiPopup[i], frame, digiProductList.getProduct(counter), digiProductList); 
     } 

그런 다음 JDialog 내에서 JFrame의 메서드에 액세스하려고했지만 시도 할 수 없습니다.

public class ProdDialog extends JDialog { 

cdDialog = new JDialog(jFrame, true); 



this.jframe = jFrame; 
jframe.newEmployee(); 

은 내가 할 노력하고있어, 왜 나를 위해 작동하지 않습니다에 관해서는 어떤 이유로 수 있음을 읽은?

+1

완전하고 컴파일 된 코드를 게시하십시오. – Braj

답변

1

JFrameJDialog은 일반적으로보기 구성 요소로 사용됩니다. 일반적으로 부모 프레임과 관련된 대화 상자를 배치하는 경우를 제외하고는 통신하지 않습니다. 대신, example과 같이 PropertyChangeEvent을 사용하여 의견을 교환하십시오. 개념적으로 List<Product>을 포함하는 별도의 모델을 사용하면 here이라는 패턴을 사용할 수 있습니다.

0

여기서 많은 문맥을 놓치고 있습니다. 그게 당신에게 효과가 없습니까?

나는 당신이 당신의 클래스는 클래스 ProdJFrame이며이 확장 JFrame의 및이 경우 JFrame의 클래스는, 그 방법이 없기 때문에 그래서 그 다음이 합리적인 경우 방법은 정의되지 않은 것을 말하는 jframe.newEmployee(); 명령에 오류를보고있는 가정 그런 다음해야 할 일 ((ProdJFrame)jframe).newEmployee();

+0

예 더 자세히 설명 했으므로 실제로 설치가 HomeScreen이라는 JFrame이므로이 JFrame에 카드 레이아웃을 구현 했으므로 액세스하려는 메서드가있는 Jpanel을 DigiProdPanel이라고하며이 패널은 JDialog를 만듭니다. 어쩌면 JDialog로 전달해야하는 "DigiProdPanel"패널일까요? – Johntk