2011-08-24 8 views
9

Dimension 개체가 필요한 구성 요소의 너비 또는 높이만 변경하려면 어떻게해야합니까? 현재 나는 이렇게하고있다 :치수, 너비/높이만 변경

jbutton.setPreferredSize(new Dimension(button.getPreferredSize().width, 100)); 

그러나 나는 그것이 잘못된 길을하고 있다고 느낀다. 더 좋은 방법이 있다면이 방법에 접근하는 가장 좋은 방법은 무엇입니까?

+5

당신이하는 기본적인 잘못은 어떤 치수로든 setPreferredSize를 호출하는 것입니다. 부품의 일부 내부 크기 힌트 계산을 방해하게됩니다. 간단히 말하자면, 절대로. 대신, 괜찮은 LayoutManager를 사용하십시오. – kleopatra

답변

2

나는 Kleopatra가 말한 방식대로 그렇게했다. preferredSize를 변경하지 않고 레이아웃 관리자에게 작업을 맡깁니다. 이것이 구성 요소의 크기를 변경하는 적절한 방법이기 때문에.

+2

님이 댓글을 달 수 없으므로 내 문법 컴파일러가 'SentenceFragment' 오류를 던지고 있습니다 (하지만 내 지저분한 손을 지키도록하겠습니다) :) – Ben

13

우선 JButton의 크기를 변경하지 않습니다. 삽입 된 컴포넌트의 LayoutManager에 따라 결국 JButton에 적용될 원하는 기본 크기를 지정하고 있습니다.

괜찮 았던 Dimension 객체의 사용에 대한 우려. 결국 차원 입력란에 직접 액세스 할 수 있습니다.

Dimension d = button.getPreferredSize(); 
d.height = 10; 
jbutton.setPreferredSize(d); 

하지만 거의 같은 일입니다.

+0

@ 패트릭 : 아마도 당신의 질문을 이해하지 못했을 것입니다. – Heisenbug

+0

질문에 대한 편집을했고, 지금 질문에 답합니다. 이전 댓글을 삭제할 수없는 것 같아서 최신 답변을 보내 주셔서 감사합니다. – Patrick

-1

이처럼 수행 할 수 있습니다 preferredSize가 속성이 특정 레이아웃 매니저에 의해 사용되는 계정

jbutton.getPreferredSize().height = 100; 

가져 가라.

+0

getPreferredSize()가 기본 크기의 복사본을 반환 할 수 있으므로 이렇게 할 수 없습니다. – ceklock