2009-06-29 2 views
4

두 개의 버튼 (저장 및 취소)이 있도록 대화 상자의 상단에 패널을 배치해야합니다.두 개의 단추가 있도록 대화 상자의 위쪽에 패널을 배치하려면 어떻게합니까?

오른쪽에 저장하려면 왼쪽에 저장하고 싶습니다.

MigLayout을 사용하여 JPanel을 만들고 내용 창의 북쪽에 고정 시켰습니다. 원하는 시점에 두 개의 버튼을 추가하는 방법을 이해할 수 없습니다. 그들. 패널 내에서 도킹하면 대화 상자의 모든 패딩을 제거하는 것처럼 보입니다 (이는 끔찍한 것처럼 보입니다).

도움을 주시면 감사하겠습니다. 컨텐츠 구획 너무 MigLayout을 사용하고

JPanel buttonPanel = new JPanel(new MigLayout("fill","[50][50]","")); 
buttonPanel.add(saveChangesButton); 
buttonPanel.add(cancelButton, "align right"); 
getContentPane().add(buttonPanel, "dock north"); 

참고 :

답변

12

제쳐두고, 왼쪽 또는 오른쪽에있는 버튼을 지정하지 않아도됩니다. 그것은 MiGLayout (플랫폼 독립성, 심지어 취소 버튼이 있어야하는 곳과 같은 곳에서도)에 대한 멋진 방법 중 하나입니다.

p.add(cancelButton, "tag cancel"); 
p.add(okButton, "tag ok"); 

이제 버튼이 플랫폼에 따라 올바른 순서로 나타납니다.

여기에 an article의 코드가 나와 있습니다. 단추와 같은 구성 요소의 크기를 강제로 사용하지 않으려면이 방법을 사용하지 않는 것이 좋습니다 (실제로는 플랫폼의 모양과 느낌에서 비롯됩니다). 또한, 그렇게하는 것이 합리적이라면 도킹은 괜찮지 만, 필자는 그것이 필요한 것으로 거의 생각하지 않는다. 단추에 대한 완전히 별도의 패널을 작성하는 대신 버튼이있는 행을 확장하면됩니다. 훨씬 깔끔하고 중첩 된 모든 패널을 사용하지 않아도됩니다.

중첩 된 패널의 테두리 레이아웃 기법에서 벗어나기는 어렵지만, 일단 중단되면 MigLayout이 꿈입니다. BTW - 라이브러리에서 단추 패널을 빌드하려는 경우가 있다는 것을 알고 있습니다. 그렇다면 별도의 패널이 적합 할 수 있습니다 (라이브러리에 단추 패널 행을 기존 패널에 추가 할 수도 있지만, 레이아웃에 추가 할 패널을 반환하는 대신).

+0

나는 최근에 더 많은 것을 파고 들었고 당신은 버튼을위한 별도의 패널조차 필요로하지 않는다. 특정 행에 대한 nogrid 속성을 설정하고 거기에 태그가있는 버튼을 추가하기 만하면됩니다. – deterb

2

도현은 항상 질문으로 대답이 튀어 즉시 발생합니다.

+0

다른 사람의 대답을 받아 들여야합니다. 태그를 사용해야합니다. – I82Much

+0

완료. 내 관심을 가져 주셔서 감사합니다. –

관련 문제