두 개의 버튼이 있도록 대화 상자 상단에 패널을 레이아웃하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1058361

  •  21-08-2019
  •  | 
  •  

문제

대화 상단의 상단에 패널을 레이아웃하여 두 개의 버튼이 있도록해야합니다 (저장 및 취소).

저장이 왼쪽에 있고 취소가 오른쪽에 있기를 원합니다.

나는 miglayout을 사용하여 jpanel을 만들어 컨텐츠 창의 북쪽에 도킹했으며, 내가 원하는대로 보이도록 두 개의 버튼을 추가하는 방법을 알 수 없습니다. 패널에 도킹하면 대화 상자에서 모든 패딩이 제거되는 것 같습니다 (끔찍한 것처럼 보입니다).

모든 도움은 대단히 감사하겠습니다.

도움이 되었습니까?

해결책

제쳐두고, 당신은 아마도 왼쪽 또는 오른쪽에 어떤 버튼이 있는지 지시해서는 안됩니다. 그것은 Miglayout에 대한 멋진 것들 중 하나입니다 (플랫폼 독립성, 취소 버튼이 어디로 가야하는지와 같은 것).

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

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

여기에 있습니다 기사 코드가 당신이하고있는 일을하고 있습니다. 버튼과 같은 구성 요소의 크기를 강제하려는 것을 피하는 것이 좋습니다 (실제로 플랫폼 모양과 느낌에서 나와야합니다). 또한, 도킹은 그렇게하는 것이 합리적이라면 괜찮지 만, 필요한 것은 거의 필요하지 않습니다. 버튼의 완전히 별도의 패널을 구축하는 대신 버튼이 포함 된 행을 넘어서 훨씬 깨끗하고 중첩 된 패널을 모두 감지하지 않습니다.

중첩 패널의 국경 레이아웃 기술에서 벗어나기는 어렵지만 일단 걸어 다니면 Miglayout은 꿈입니다. BTW- 라이브러리에 버튼 패널을 작성하려는 시간이 있음을 이해합니다. 그렇다면 별도의 패널이 의미가있을 수 있습니다 (라이브러리가 기존 패널에 버튼 행을 추가 할 수도 있지만. 패널을 반환하는 대신 레이아웃에 추가하십시오).

다른 팁

DOH, 질문을하자마자 항상 발생하면 답이 나타납니다.

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

컨텐츠 창은 miglayout도 사용하고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top