2011-11-13 4 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'によって既にロードされている可能性があります)。しかしそれは別の問題です。また、catchの中に '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... 
    } 
});`