totalPanel에 BorderLayout을 사용하는 것이 좋습니다. PanelA를 BorderLayout.PAGE_START 위치에, PanelB를 BorderLayout.CENTER 위치에 추가합니다.
레이아웃 매니저에 대한 자세한 내용은 자습서를 검토하십시오 Lesson: Laying Out Components Within a Container
편집 : 나는 그것이 "작동하지 않습니다"하지만 당신은 코드를 표시하지 않습니다, 당신은 BorderLayout를 사용했습니다 것을 알 수있다. 왜 제대로 작동하지 않는지에 대한 자세한 튜닝을 위해서 우리에게 코드를 보여줄 것을 고려해보십시오.
작동 시키려면 JPanels의 초기 크기를 설정하는 데 도움이되는대체 값을 제공하는 PanelX 클래스를 제공하는 것이 좋습니다. 예를 들어
:
을 적절하게 크기를 조정합니다 : 실행하면
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;
public class SimpleGuiLayout {
private static void createAndShowGui() {
JPanel totalPanel = new JPanel(new BorderLayout());
totalPanel.add(new PanelX(800, 200, "Panel A"), BorderLayout.PAGE_START);
totalPanel.add(new PanelX(800, 400, "Panel B"), BorderLayout.CENTER);
JFrame frame = new JFrame("Simple Gui Layout");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(totalPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
class PanelX extends JPanel {
private int prefW;
private int prefH;
public PanelX(int prefW, int prefH, String title) {
this.prefW = prefW;
this.prefH = prefH;
setBorder(BorderFactory.createTitledBorder(title));
}
@Override
public Dimension getPreferredSize() {
return new Dimension(prefW, prefH);
}
}
, 그렇게 같을 것이다.
시도한 것을 설명하기 위해 [SSCCE] (http://www.sscce.org)를 게시 할 수 있습니까? –
GridBag를 사용해 보셨습니까? http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html –