학교용 작업이 있는데 아직 Java가 좋지 않습니다 ... 테두리가있는 프레임을 만들고 있는데 여기에는 스왑을 포함하여 여러 개의 패널이 있습니다. 보이지 않는 곳에서 보이는 곳으로 그리고 그 반대편에서. 어떤 이유로 프로그램을 실행할 때 아무 것도 표시되지 않습니다.JFrame에서 LayoutManager를 사용하여 패널을 표시하지 않습니다.
화면 : http://prntscr.com/5r2s6s
public class QuizIT extends JFrame {
public static JFrame Frame;
public static Welkom Welkom;
public static Vraag1 Vraag1;
public static Vraag2 Vraag2;
public static Vraag3 Vraag3;
public static Vraag4 Vraag4;
public static Vraag5 Vraag5;
public static Vraag6 Vraag6;
public static Punten Punten;
public static Uitleg Uitleg;
public static void main(String[] args){
// Frame Eigenschappen
Frame = new JFrame();
Frame.setSize(500, 500);
Frame.setLocation(0, 0);
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Frame.setTitle("QuizIT | Naesen Technologies");
Frame.setVisible(true);
}
public QuizIT(){
// Layout -> BorderLayout
setLayout(new BorderLayout());
// Initialiseren Klassen
Welkom = new Welkom();
Uitleg = new Uitleg();
Vraag1 = new Vraag1();
Vraag2 = new Vraag2();
Vraag3 = new Vraag3();
Vraag4 = new Vraag4();
Vraag5 = new Vraag5();
Vraag6 = new Vraag6();
Punten = new Punten();
// Panel -> Frame
Frame.add(Welkom, BorderLayout.CENTER);
Frame.add(Uitleg, BorderLayout.NORTH);
Frame.add(Vraag1, BorderLayout.CENTER);
Frame.add(Vraag2, BorderLayout.CENTER);
Frame.add(Vraag3, BorderLayout.CENTER);
Frame.add(Vraag4, BorderLayout.CENTER);
Frame.add(Vraag5, BorderLayout.CENTER);
Frame.add(Vraag6, BorderLayout.CENTER);
Frame.add(Punten, BorderLayout.SOUTH);
// Layout -> Bounds
Uitleg.setBounds(0,0,500,100);
Welkom.setBounds(0,100,500,300);
Vraag1.setBounds(0,100,500,300);
Vraag2.setBounds(0,100,500,300);
Vraag3.setBounds(0,100,500,300);
Vraag4.setBounds(0,100,500,300);
Vraag5.setBounds(0,100,500,300);
Vraag6.setBounds(0,100,500,300);
Punten.setBounds(0,400,500,100);
Uitleg.setBackground(Color.YELLOW);
Welkom.setBackground(Color.YELLOW);
// Visibility
Welkom.setVisible(true);
Uitleg.setVisible(true);
Vraag1.setVisible(false);
Vraag2.setVisible(false);
Vraag3.setVisible(false);
Vraag4.setVisible(false);
Vraag5.setVisible(false);
Vraag6.setVisible(false);
Punten.setVisible(true);
}
}
1)이 [MCVE (http://stackoverflow.com/help/mcve) (최소 완전하고 검증을 게시 예) 또는 [SSCCE] (http://www.sscce.org/) (단락, 자체 포함, 올바른 예). 2)'Frame.add (Vraag4, BorderLayout.CENTER); Frame.add (Vraag5, BorderLayout.CENTER);'BorderLayout에서 단일 레이아웃 제약 조건에 최대 하나의 구성 요소를 추가 할 수 있습니다. .. –
.. 3)'Uitleg.setBounds (0,0,500,100);'Java GUI는 다른 OS, 화면 크기, 화면 해상도 등에서 작동해야합니다. 따라서 픽셀 완벽한 레이아웃에 도움이되지 않습니다. 대신 레이아웃 관리자 또는 [조합] (http://stackoverflow.com/a/5630271/418556)과 [공백] 레이아웃 채우기 및 테두리 (http://stackoverflow.com/a/17874718/)를 사용하십시오. 418556). 4) 일반적인 Java 명명법을 배우십시오 (예 :'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute'가'CONSTANT'가 아닌 한). 일관되게 사용하십시오. .. –
.. 5) ASCII 아트 또는 최소한의 크기로 GUI 레이아웃의 간단한 그림을 제공하고 크기를 조정할 수 있으면 더 많은 너비와 높이를 제공하십시오. –