2011-11-13 7 views
0

Netbeans을 사용하여 퀴즈 응용 프로그램을 만들려고하고 있으며 Java에 익숙하지 않습니다. 나는 그것을 MySQL에 연결하려고 시도했고 성공적이었다. 문제는 환영 화면의 정보로 클래스를 생성하고 프로그램 전체에서 데이터를 상속해야한다는 것을 깨달았을 때 도착했습니다. 그래서 저는 제 수업을 만들었습니다. BaseClass 및 ChildClass입니다. 이 후 내 jButton은 아무 것도하지 않을 것입니다. 여기에 코드가 있습니다.Java 클래스

class BaseClass 
{ 
    String jdbcurl = "jdbc:mysql://localhost:3306/quiz"; 
    String user="root"; 
    String pass="sql"; 
    int num = (int)(Math.random() * 1000); 
    String name = jTextField1.getText(); 
    int age=Integer.parseInt(jTextField2.getText()); 

} 

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    class ChildClass extends BaseClass 
    { 
     public void input() { 
      try { 
       Class.forName("java.sql.Driver"); 
       Connection con = (Connection) DriverManager.getConnection(jdbcurl,user,pass); 
       Statement st = con.createStatement(); 
       String query = "insert into DB values ('" + name + "'," + age + ",0," + num + ");"; 
       st.executeUpdate(query); 
       st.close(); 
       con.close(); 
      } 
      catch(Exception e) { 
       JOptionPane.showMessageDialog(null,"Error in code"); 
      } 
      Question1 w2 = new Question1(); 
      w2.setVisible(true); 

     } // TODO add your handling code here: 
    } 
} 

도움을 주시면 감사하겠습니다. :)

+1

버튼 클릭에 대한 반응은 어딘가에 구현 된 액션 리스너를 의미합니다. 나는 당신의 코드에서 그것을 볼 수 없다. 질문을 명확하게하기 위해 예제를 수정하십시오. – Jagger

+0

잘못된 드라이버를로드하고 있습니다. 실제로 드라이버를 명시 적으로로드하지는 않습니다 (실제 드라이버는 JDBC4 호환 드라이버 인 경우 ServiceLoader에 의해 이미로드되었을 수 있습니다). 그러나 그것은 다른 문제입니다. 또한 캐치 안에'e.printStackTrace()'를 추가하면 stdout에서 문제의 원인을 볼 수 있습니다. – BalusC

+0

이 코드는 컴파일도 수행합니까? 메소드 내에서 정의한대로 클래스를 정의 할 수 없으며, 다음 메소드가 시작되기 전에 BaseClass가 닫힌 것처럼 보입니다. 이 클래스가 모두 다른 클래스 안에 있다고 가정 할 때, ChildClass를 먼저 제거해야합니다. 나는 당신이 추출한 * .java에 전체 코드를 붙여 넣어야한다고 생각한다. – aishwarya

답변

3

JButton은 어디에 있습니까? 당신은 그것에 actionListener를 추가해야합니다.

jButton.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent event){ 
    //now do your things here... 
    } 
});`