다른 패널에 중첩 된 두 개의 JPanel
컨테이너를 만들려고하는데 왜 아래 코드와 아무런 관련이 없습니까? 내 두 패널이 ABC
패널에없는 것 같습니다.BorderLayout - JPanel의 JPanel
public class ABC extends JPanel
{
Frame frame;
public ABC(Frame frame)
{
super();
this.frame = frame;
setLayout(new BorderLayout());
JPanel one = new JPanel();
JPanel two = new JPanel();
add(one,BorderLayout.NORTH);
add(two,BorderLayout.CENTER);
one.setVisible(true);
two.setVisible(true);
}
public class one extends JPanel {
public one() {
setLayout(new FlowLayout(FlowLayout.LEFT));
createA();
setVisible(true);
}
}
public class two extends JPanel {
public two() {
setLayout(new FlowLayout(FlowLayout.LEFT));
createB();
setVisible(true);
}
}
private void createA(){
add(ButtonA);
add(ButtonAA);
add(ButtonAAA);
}
private void createB(){
add(ButtonB);
}
}
'JPanel two = new JPanel();'. 빈 패널 일 뿐이며 아무것도 표시하지 않습니다. 배경색을 변경하거나 일부 구성 요소를 추가하십시오. –
'JPanel one = new JPanel'에서는 새로운 JPanel의 인스턴스를 생성하지 않습니다. 실제로는 'one'과 'two'의 생성자를 호출해야합니다. – jr593
1) 들여 쓰기 코드 행과 블록의 논리적이고 일관된 형식을 사용하십시오. 들여 쓰기는 코드의 흐름을 따라 가기 쉽도록 만들어졌습니다. 2) 더 나은 도움을 받으려면 [MCVE] 또는 [Short, Self Contained, Correct Example] (http://www.sscce.org/)를 게시하십시오. 3) 스윙과 AWT 구성 요소를 합당한 이유없이 혼합하지 마십시오. 이 경우 좋은 이유가 없습니다. 'Frame frame;을'JFrame frame; '으로 변경하고 컴파일러가 경고하는 다른 코드 비트를 조정합니다. 4)이 경우, JPanel을 확장 할 충분한 이유가 없습니다. .. –