2013-01-12 6 views
0

저는 자바가 처음이에요. (자바 스크립트에 대해 많은 지식이 있습니다.)
저는 Canvas으로 작업하려고하는데,이 이상한 문제가 있습니다.
체크 코드 here.
보시다시피, Canvas의 크기를 정의한 후에 인쇄하려고합니다.
그러나 크기가 제대로 인쇄되지 않습니다.이상한 자바 캔버스 크기 출력

  setMinimumSize(new Dimension(WIDTH,HEIGHT)); 
      setMaximumSize(new Dimension(WIDTH,HEIGHT)); 
      setPreferredSize(new Dimension(WIDTH,HEIGHT)); 

      frame = new JFrame(); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.setLayout(new BorderLayout()); 
      frame.add(this, BorderLayout.CENTER); 
      frame.pack(); 
      frame.setResizable(false); 
      frame.setLocationRelativeTo(null); 
      frame.setVisible(true); 

      System.out.println(getWidth()); 

왜 크기가 변경 되었습니까?

+0

나를 위해 크기가 변경되지 않습니다 이 예제를 사용하면됩니다. –

+0

'190' ..과 실제'WIDTH' 변수가 180로 설정되어 있습니다. – Israelg99

+0

아니요. 180이 아닙니다. 190 –

답변

1

기본/최소/최대 크기는 레이아웃 관리자가 구성 요소를 배치하는 방법에 대한 "제안"이므로 사용하지 않아도됩니다. BorderLayout를 시도하고에 구성 요소를 채우기 위해 사용 가능한 공간을 사용합니다

지금, 팩, 프레임의 크기가 컨텐츠 구획의 적절한 사이즈에 (일반적으로) 설정되어

.

이제 물어 보면, 왜 그것이 제공 한 것으로 설정되어 있지 않은 것입니까? 대답은, 프레임 또한 사용할 수있는 공간 (프레임 크기 - 장식 insets = 사용 가능한 공간)에서 뺄 프레임 장식을 포함해야합니다, 당신은 또한 고려 메뉴 모음을 고려해야합니다