2010-02-18 4 views
0

다음 코드는 넷빈즈 6.8 Mac 버전Java Jbutton이 JFileChooser를 올바르게 호출하지 않는 이유는 무엇입니까?

public class fileBrowser extends javax.swing.JPanel { 

/** Creates new form fileBrowser */ 
public fileBrowser() { 
    initComponents(); 
} 

/** This method is called from within the constructor to 
* initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is 
* always regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code"> 
private void initComponents() { 

    jFileChooser1 = new javax.swing.JFileChooser(); 

    setName("Form"); // NOI18N 

    jFileChooser1.setName("jFileChooser1"); // NOI18N 

    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); 
    this.setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 
     .add(org.jdesktop.layout.GroupLayout.TRAILING, jFileChooser1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 590, Short.MAX_VALUE) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 
     .add(jFileChooser1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE) 
    ); 
}// </editor-fold> 


// Variables declaration - do not modify 
private javax.swing.JFileChooser jFileChooser1; 
// End of variables declaration 

}에 의해 자동으로 생성 된

나는 다음과 같은 코드로 (파일을 사용자가 선택할 수 있도록)를 호출 버튼을 만들려고 해요 :

private void jButton3MouseClicked(java.awt.event.MouseEvent evt) { 
fileBrowser fileBrowser = new fileBrowser(); 
fileBrowser.setVisible(true);//why not working? 

} 

음 ... 버튼을 클릭하면 빈 양식 만 표시됩니다. 버그가있는 위치는 어디입니까?

답변

2

JFileChooser는 버튼과 같은 구성 요소 자체가 아닙니다. 그것은 대화입니다. 그래서 이것은 "올바르게"작동하고 있습니다. JFileChooser를 사용하는 방법은 JFileChooser Java Doc를 확인하십시오.

2

버튼을 클릭 할 때 MouseListener를 사용하면 안됩니다. 당신은 ActionListener를 사용해야합니다.

JFileChooser API를 읽고 파일 선택기를 표시하는 방법에 대한 실습 예제는 "파일 선택기 사용 방법"의 스윙 튜토리얼 링크를 참조하십시오. 기본적으로 코드는 예제 프로그램의 ActionListener에있는 코드와 비슷합니다.