2013-10-11 2 views
4

JPanel을 추가하고 JCombobox를 추가하는 JFrame을 프로그래밍했습니다. 내 문제는 JCombobox가 프레임 크기를 변경할 때까지는 표시되지 않는다는 것입니다.JCombobox를 올바르게 표시하기 위해 JFrame을 이동하십시오.

/* JFrame */ 
    frame = new JFrame("Frame"); 
    frame.setBounds(0, 0, 900, 800); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true); 

    /* JPanels */ 
    panel = new JPanel(); 
    panel.setBounds(frame.getBounds()); 
    panel.setVisible(true); 
    panel.setLayout(null); 
    panel.addMouseListener(m); 

    /* JComboBox */ 
    String comboBoxListe[] = { "1", "2", "3" }; 
    JComboBox chooser = new JComboBox(comboBoxListe); 
    chooser.setSize(200, 25); 
    chooser.setLocation(30, 30); 
    chooser.setVisible(true); 

    panel.add(chooser); 
    frame.add(panel); 

누군가가 내가 뭘 잘못했는지 볼 수 있습니다 여기에

내 코드? 콤보 상자가

frame.setVisible(true); 

이이 layout managers 될 수 있도록 구성 요소가 디자인 된

스윙을 추가 후 을 표시 확인에 추가되기 전에 JFrame가 표시되었다

+0

사용중인 Java 버전은 무엇입니까? 같은 코드가 잘 작동하는 것 같습니다. 당신이 제시 한 것보다 더 많은 것이있는 것처럼 보입니다. –

+0

다른 문제가 있다고 생각하십니까? – InformatikBabo

답변

2

당신의 도움 :)에 대한 감사합니다 사용 - 여기 하나 사용

+0

+1 setVisible이 문제의 원인이라고 생각합니다. 또한 레이아웃 관리자의 사용을 권장하기 위해 여기에 근본적인 문제가 있습니다. – sage88

+0

감사합니다. 하지만 프레임으로도 잘 작동 할 것이라고 생각했습니다. repaint()와 나는 하나 (여기에 게시되지 않음)를 가지고 있습니다. 그리고 layoutmanager를 사용하고 있습니다 ... – InformatikBabo

+0

@InformatikBabo, '하지만 프레임으로도 잘 동작 할 것이라고 생각했습니다. repaint()'- 보이는 GUI에 구성 요소를 추가/제거 할 때마다 revalidate () (레이아웃 관리자를 호출) 및 repaint() (새로운 크기/위치에서 구성 요소를 칠하기). 프레임이 아니라 변경하는 패널에서만이 작업을 수행하면됩니다. – camickr

관련 문제