2011-12-07 3 views
0

AWT에서 새로운 기능이며 문제가 있습니다. 여기 container != null 내 기능 func(Container container)의 코드 예제입니다 : 다음AWT getPeer가 null을 반환합니다.

Canvas embedder = new Canvas(); 
embedder.setBackground(...); 
embedder.setPreferredSize(...); 
container.add(embedder); 
container.setVisible(true); 

내가 frameWindow, 긴 을 얻기 위해 노력하고 있어요는 나의 첫 번째 작업은

ComponentPeer peer = embedder.getPeer(); 

내가 peer == null

무엇입니까

제발, 왜 이런 일이 일어날 지 말해 주시겠습니까?

답변

2

왜 피어를 원하십니까? java.awt.peer은 사라졌으며 어쨌든 유용하지 않았습니다. 그리고 AWT 컴포넌트가 아닌 Swing을 사용하십시오.

[헤비급] 구성 요소가 아직 실현되지 않았기 때문에 존재하지 않습니다.

+0

톰이 맞습니다. 아마도 메서드에 전달중인 컨테이너가 화면에 아직 표시되지 않은 것 같습니다. 즉, 자체적으로 화면에 표시되는 창 또는 대화 상자의 하위 항목이 아닙니다. 반면에, 컨테이너 HAD는 일종의 보이는 창에 속해 있었고 embedder는 피어가 있어야하며 null이 아닌 대답을 얻습니다. 어떤 경우 든 Tom의 첫 번째 진술은 정말 유용합니다. 네이티브 피어를 원하는 이유에 대해 매우 열심히 생각하십시오. 그럼, 다시 생각해 ... –

+0

나는 particulary AWT 구성 요소를 확인해야합니다, 왜 내가 그것을 사용하고 있습니다. JInternalFrame frame = 새로운 JInternalFrame ("frame", false, false, false, false); frame.setSize (220, 220); func (frame);'이것은 내 함수를 호출하기 전에 사용하고있는 함수입니다. 그래서, 내가 여기서 뭘 놓치고있는 건지 모르겠다. – tratto

+0

나는 그것을 작성한 사람이 아니며, 그것을 고치고 AWT를 사용하여 작동하게해야한다. – tratto

관련 문제