0
MigLayout을 사용하여 세 행으로 나뉘어 진 패널을 만들려고합니다. 첫 번째 행과 마지막 행은 일정 비율의 푸시 Y (이 경우 2f)를 가져야하며 그 사이의 행은 남은 공간을 차지하기 위해 가능한 한 잘 자라야합니다.MigLayout - 확대 및 누름이있는 패널
그러나 마지막 행 (예 : 자체 패널)에는 구성 요소가 없습니다. 이 경우, 제 2 행이 모든 높이를 차지하기를 원하며 그것을 달성 할 수 없습니다.
다른 흐름 종속성 때문에 보이지 않게하는 것은 불가능합니다. 그것에 대해
public class TestClass {
public static void main(String[] args) {
createPanel(true);
createPanel(false);
}
private static void createPanel(boolean removeAll) {
JFrame frame = new JFrame();
JPanel panel = new JPanel(new MigLayout(new LC().fill().gridGap("0", "0").insetsAll("0")));
panel.add(new JLabel("first row"), new CC().grow().newline().pushY(2f));
JTextArea abc = new JTextArea("abc");
abc.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
panel.add(abc, new CC().push().grow().newline());
JPanel pnl = new JPanel(new MigLayout(new LC().fill().gridGap("0", "0").insetsAll("0")));
pnl.add(new JLabel("aaa"), new CC());
pnl.add(new JLabel("bbb"), new CC().newline());
pnl.add(new JLabel("ccc"), new CC().newline());
panel.add(pnl, new CC().grow().newline().pushY(2f));
if (removeAll) {
pnl.removeAll();
}
frame.setContentPane(panel);
frame.setSize(100,800);
frame.setVisible(true);
}
}
답변을 주셔서 감사합니다. 실제로 세 개의 행이 모두 자랄 필요가 있지만 특정 비율로 성장해야합니다. 위쪽과 아래쪽 행의 크기가 커지지 않기 때문에 북쪽에서 북쪽으로 도킹하고 남쪽에서 아래쪽으로 밀어 넣으면 여전히 도움이되지 않습니다. –