하나의 단일 프레임에 4 개의 다른 패널로 인터페이스를 설계하려고합니다. 아래에 포함 된 코드에 2 개의 패널 설명을 포함 시켰습니다. 다음은다른 레이아웃의 프레임에있는 4 개의 패널
내 코드의 일부입니다
public class finalFrame extends JFrame {
PanelA a = new PanelA()
PanelB b = new PanelB()
// ...
public finalFrame() {
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//...
//...
//...
add(a);
add(b);
}
}
class PanelA extends JPanel {
JButton bt = new JButton();
add(bt);
//...
}
class PanelB extends JPanel {
// ...
//... }
class Program {
public static void main(String [] args) {
finalFrame fr = new finalFrame();
}
}
이 코드는 (그것은 단지 이상한 크기 (내가 원하지 않는 것)에서 마지막 패널을 표시) 작동하지 않습니다. 그러나 프레임 클래스 (그리고 개별 패널 클래스가 아닌) 내에서 다른 패널을 설정하면 완벽하게 작동합니다. 왜 다른 패널 클래스를 사용할 수 없으며 이후에 모든 패널 클래스를 마지막 프레임 클래스에 추가 할 수 있습니까?
프레임 클래스 내에 설정된 패널을 포함하고 프레임 레이아웃을 포함하면 (방금 언급 한 것처럼) 작동합니다. 그러나 프레임 클래스 내에 패널을 포함 시키지만 프레임 레이아웃을 포함하지 않으면 프레임 레이아웃을 사용하여 마지막 패널 만 표시합니다. 왜 다른 패널을 묘사하지 않는거야?
감사합니다.
'JFrame'는'FlowLayout'입니다. 안 그래? – Sarz
'JFrame'의 테두리가'FlowLayout'입니까? 기본적으로'JFrame'의'LayoutManager'는'BorderLayout'입니다. 설명서는 다음과 같이 말합니다 : _ 기본 내용 창에 BorderLayout 관리자가 설정되어 있습니다 ._''JFrame'의'add()'메소드가'content pane'에 직접'components '를 추가하기 때문에 작동합니다. 그것은'FlowLayout'이 아닙니다. –
왜 내가 추가 한 마지막 패널 만 보이고 있습니까? 이것은 기본 프레임 레이아웃과 관련이 있습니까? – vmck