Dimension
개체가 필요한 구성 요소의 너비 또는 높이만 변경하려면 어떻게해야합니까? 현재 나는 이렇게하고있다 :치수, 너비/높이만 변경
jbutton.setPreferredSize(new Dimension(button.getPreferredSize().width, 100));
그러나 나는 그것이 잘못된 길을하고 있다고 느낀다. 더 좋은 방법이 있다면이 방법에 접근하는 가장 좋은 방법은 무엇입니까?
Dimension
개체가 필요한 구성 요소의 너비 또는 높이만 변경하려면 어떻게해야합니까? 현재 나는 이렇게하고있다 :치수, 너비/높이만 변경
jbutton.setPreferredSize(new Dimension(button.getPreferredSize().width, 100));
그러나 나는 그것이 잘못된 길을하고 있다고 느낀다. 더 좋은 방법이 있다면이 방법에 접근하는 가장 좋은 방법은 무엇입니까?
나는 Kleopatra가 말한 방식대로 그렇게했다. preferredSize를 변경하지 않고 레이아웃 관리자에게 작업을 맡깁니다. 이것이 구성 요소의 크기를 변경하는 적절한 방법이기 때문에.
님이 댓글을 달 수 없으므로 내 문법 컴파일러가 'SentenceFragment' 오류를 던지고 있습니다 (하지만 내 지저분한 손을 지키도록하겠습니다) :) – Ben
우선 JButton의 크기를 변경하지 않습니다. 삽입 된 컴포넌트의 LayoutManager에 따라 결국 JButton에 적용될 원하는 기본 크기를 지정하고 있습니다.
괜찮 았던 Dimension 객체의 사용에 대한 우려. 결국 차원 입력란에 직접 액세스 할 수 있습니다.
Dimension d = button.getPreferredSize();
d.height = 10;
jbutton.setPreferredSize(d);
하지만 거의 같은 일입니다.
이처럼 수행 할 수 있습니다 preferredSize가 속성이 특정 레이아웃 매니저에 의해 사용되는 계정
jbutton.getPreferredSize().height = 100;
가져 가라.
getPreferredSize()가 기본 크기의 복사본을 반환 할 수 있으므로 이렇게 할 수 없습니다. – ceklock
당신이하는 기본적인 잘못은 어떤 치수로든 setPreferredSize를 호출하는 것입니다. 부품의 일부 내부 크기 힌트 계산을 방해하게됩니다. 간단히 말하자면, 절대로. 대신, 괜찮은 LayoutManager를 사용하십시오. – kleopatra