일부 구성 요소 (확인란, 콤보 등)를 추가 한 JPanel
이 있습니다. 프레임이 최대화되면 구성 요소의 경계도 오른쪽으로 이동하거나 이동한다는 것을 알게되었습니다. 그런 다음 복원시 구성 요소가 원래 위치로 다시 이동합니다.스윙 구성 요소의 경계를 고정하는 방법
모니터가 21 인치 이상인 경우 구성 요소가 실제로 달라집니다. 구성 요소가 맨 오른쪽으로 이동하는 것을 볼 수 있습니다.
우리는 java.awt.LayoutManager2
을 구현하는 사용자 정의 레이아웃 관리자를 사용하고 있습니다. 수업 내용은 조용한 거대 함이어서 구성 요소의 경계를 결정하는 영역을 가리 킵니다. 우리가 x
를 결정하는 시점에서
JPanel pl = new JPanel(new OurLayout(this))
//add the component to panel
pl.add(checkBox);
..
, 내가 이동에서 구성 요소를 방지하기 위해 줄을 추가 할 :
protected int hMargin = 0;
..
Insets insets = target.getInsets();
Dimension size = target.getSize();
int x = (size.width - insets.left - insets.right - 15 * hMargin);
아래와 같이 레이아웃을 호출하고 구성 요소를 추가 할 프레임에서
호출 패널이 추가 된 프레임이 최대화 될 때.아무에게도이를 달성 할 수있는 방법을 제안 할 수 있습니까? 예제 코드는 잘 이해 될 것이다.
다른 레이아웃 관리자가 어떻게하는지보십시오. 힌트 : 그들은'getPreferredSize()','getMinimumSize()'및'getMaximumSize()'를 사용합니다. – Thomas
왜 자신 만의 LayoutManager를 굴립니까? 유연하고 강력한 관리자를 구현하기가 어렵습니다. 큰 3 인 (MigLayout, FormLayout, DesignGridLayout) 타사 관리자가 요구 사항에 부합하는지 확인하는 것이 합리적입니다. – kleopatra
아마도 듣고 싶은 것이 아니라 자신의 레이아웃 관리자를 왜 롤업해야하는지 'SpringLayout'이 할 수없는 것들이 있습니까? – Qwerky