2013-04-22 3 views
2

까지 사용합니다. 내 프로그램의 GUI를 활성화하기 위해 이제는 GUI를 추가 할 것을 기대하고 있습니다. 다른 메인 프로그램에 하나씩, 클래스 개체를 추가했지만 프로그램을 실행할 때 프레임과 레이블 만 표시되는 반면 내 필드와 단추는 공간을 클릭하여 표시해야하는 이유는 무엇입니까?기본 스윙 ui는 기본 도구 옆에있는 기본 기본 기능인

public LoginGui() { 
     initialize(); 
     uc = new UserCntrl(); 
    } 

    private void initialize() { 
     frame = new JFrame(); 
     frame.setBounds(100, 100, 450, 415); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().setLayout(null); 
     frame.setVisible(true); // i have added this line 

주를 :

public static void main(String[] args){ 
     // init login GUI 
     LoginGui loginGuiWindow; 
     try { 
      loginGuiWindow = new LoginGui(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

답변

2
  • 추측 : 당신이 볼을 설정 후 JFrame의 에 구성 요소를 추가 할 수 있을까? 그렇다면 그렇게하지 마십시오. 모든 구성 요소를 추가 한 후 setVisible(true)으로 전화하십시오.
  • 또한 null 레이아웃을 사용하지 마십시오. GUI를 업그레이드하거나 수정하려는 경우 두려운 두통을 피하려면 레이아웃 관리자와 pack() 호출을 사용하십시오.
+0

고맙습니다. 예, 문제가 있습니다. 모든 구성 요소가 추가 된 곳이 아니라 처음부터 표시가 설정되었으므로 pack()도 살펴볼 것입니다. :) –

+1

@ BogdanM : 천만에. 더 중요한 것은, 레이아웃 관리자의 사용과'null '레이아웃 사용의 회피입니다. –