그래서 기본 시각적 Java 구성 요소부터 시작하여 정확히 사용하는 데 어려움이 있습니다.JPanel이 제대로 표시되지 않음
여기에 새로운 문제가 있습니다. 동부, 중부, 서부의 3 개 패널을 구현하려고하지만 중심 패널을 올바르게 표시 할 수 없습니다. 여기에 코드를 내 조각 :
은 기본적으로 'panelUpMiddle이'보이지 않는, 그래서 ...public class TestCode_Web {
public static void main(String[] args) {
JFrame window = new JFrame("Test");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(400, 400);
JPanel innerPanel = new JPanel(new BorderLayout());
JPanel panelUp = new JPanel(new BorderLayout());
JPanel panelUpLeft = new JPanel();
JPanel panelUpMiddle = new JPanel();
window.add(innerPanel, BorderLayout.NORTH);
innerPanel.add(panelUp, BorderLayout.NORTH);
panelUp.add(panelUpLeft, BorderLayout.WEST);
panelUp.add(panelUpMiddle, BorderLayout.CENTER);
JLabel label1 = new JLabel("Label 1");
JLabel label11 = new JLabel("Label 11");
JLabel label12 = new JLabel("Label 12");
panelUp.add(label1);
panelUpLeft.add(label11);
panelUpMiddle.add(label12);
panelUp.setBackground(new Color(200, 240, 200));
panelUpLeft.setBackground(new Color(200, 240, 0));
panelUpMiddle.setBackground(new Color(100, 240, 200));
panelUp.setPreferredSize(new Dimension(window.getWidth(), 160));
panelUpLeft.setPreferredSize(new Dimension(160, 120));
window.setVisible(true);
}
}
Java Swing * (http://stackoverflow.com/q/7229226/230513) 및 [* 초기 스레드 *]에서 set (Preferred | Maximum | Minimum) 크기 메서드를 사용하지 말아야합니까?를 참조하십시오. http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html). – trashgod
이'panelUp.add (label1);'을 쓸 때 단순히 CENTER 위치 즉, 'panelUp.add (panelUpMiddle, BorderLayout.CENTER);'에 이전에 추가 된 구성 요소를 대체하기 때문에 볼 수 없습니다 'label12' /'panelUpMiddle'. 주어진 시간대에 하나의 구성 요소 만 임의의 위치에 추가 될 수 있기 때문입니다. 코드를 다시 살펴보십시오. –
@nIcE cOw : 정확히 그 문제입니다. 그 점에 더주의를 기울여야했습니다! 고맙습니다.하지만 새로운 _post 답변을 열지 않았으므로이 질문에 대한 답변을 고려할 수 없습니다. –