2013-03-18 1 views
1

GUI에 단추, 레이블 또는 텍스트 필드가 표시되지 않는 이유는 무엇입니까?JFrame에 아무것도 표시되지 않는 이유는 무엇입니까?

나는 모든 설정이 있다고 생각하지만 실행하면 프레임 만 표시되고 내용이 전혀 표시되지 않습니다.

package BasicGame; 

import java.awt.Container; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 
import javax.swing.SwingConstants; 

public class Gui extends JFrame{ 
    private static final long serialVersionUID = 1L; 
    private JLabel label; 
    private JTextField textField; 
    private JButton button; 
    private buttonHandler bHandler; 

    public Gui(){ 
     setTitle("Basic Gui"); 
     setResizable(false); 
     setSize(500, 200); 
     setVisible(true); 
     setDefaultCloseOperation(EXIT_ON_CLOSE);  

     Container pane = getContentPane(); 
     pane.setLayout(null); 


     button = new JButton("button"); 
     button.setBounds(50, 60, 50, 70); 
     bHandler = new buttonHandler(); 
     button.addActionListener(bHandler); 

     label = new JLabel("Hello", SwingConstants.RIGHT); 
     label.setBounds(50, 60, 50, 70); 

     textField = new JTextField(10); 
     textField.setBounds(50, 60, 50, 70); 

     pane.add(button); 
     pane.add(label); 
     pane.add(textField); 

    } 

    public class buttonHandler implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
      System.exit(0); 
     } 
    } 

    @SuppressWarnings("unused") 
    public static void main(String[] args){ 
     Gui gui = new Gui(); 
    } 

} 

답변

3

setVisible()을 생성자의 끝으로 이동하십시오. JFrame을 설정하고 make가 표시되면 모든 구성 요소가 추가되므로 변경 사항이 표시되지 않습니다.

이 모든 구성 요소와 JFrame를 표시해야합니다 :

public Gui(){ 
    setTitle("Basic Gui"); 
    setResizable(false); 
    setSize(500, 200); 
    setDefaultCloseOperation(EXIT_ON_CLOSE);  

    Container pane = getContentPane(); 
    pane.setLayout(null); 


    button = new JButton("button"); 
    button.setBounds(50, 60, 50, 70); 
    bHandler = new buttonHandler(); 
    button.addActionListener(bHandler); 

    label = new JLabel("Hello", SwingConstants.RIGHT); 
    label.setBounds(50, 60, 50, 70); 

    textField = new JTextField(10); 
    textField.setBounds(50, 60, 50, 70); 

    pane.add(button); 
    pane.add(label); 
    pane.add(textField); 
    setVisible(true); // Move it to here 
} 

여기 프레임의 전에 어떻게 생겼는지 그리고 나는 setVisible 문을 이동하여 코드를 컴파일 한 후.

하기 전에 :

enter image description here

후 :

enter image description here

+1

+1 당신은 이동하거나 다시 입력했다? – Smit

+1

이동하십시오. 잘못된 라인을 제거하기위한 소스 코드 편집. – syb0rg

+0

감사합니다. 그것은 그것을 고쳤다! – user2184376

관련 문제