2014-01-09 4 views
0

내가 다른 프레임에 RMI를 통해 프레임을 보내고 통해 프레임을 전송가지는 NotSerializableException GroupLayout 예를 들어, RMI

java.rmi.MarshalException: error marshalling arguments; nested exception is: 
    java.io.NotSerializableException: javax.swing.GroupLayout 

내가 FrameOne 직렬화를 만들기 위해 노력을 나는 같은 오류가 계속 발생합니다.

나는 또한 다른 프레임 (FrameTwo)에서 일시적으로 사용하려고했으나 작동하지 않았습니다.

왜이 오류가 발생합니까?

답변

2

오류는 무엇이 잘못되었는지를 알려주고 있습니다. 레이아웃, GroupLayout은 직렬화 할 수 없기 때문에 객체가 직렬화되지 못합니다.

질문 및 가능한 해결책 : 왜 직렬화하고 JFrame을 보내려고합니까? 대신 모델 데이터 또는 변경된 모델 데이터를 보내지 말고 다른 쪽에서 해당 뷰를 다시 만들거나 수정하도록하십시오.

+0

그래서 GroupLayout (편집 할 수 없음)을 serialize해야합니다. – Swag

+2

@ y451n : 권장 사항을 추천하지 않았으므로 권장 사항을 다시 읽으십시오. 다시 말하지만, 모델이 아닌 데이터 (뷰) (GUI)를 직렬화하십시오. –

+1

일부 스윙 구성 요소 모델은 렌더링 될 때 ModelListeners를 직렬화 할 수 없을 때 추가 할 것이라고 지적하고 싶습니다. 그 비트 전에, 그래서 조심해라. –