Классы на Java

#java #mysql #swing #jdbc

#java #mysql #swing #jdbc

Вопрос:

Я пытаюсь создать приложение для викторины, используя Netbeans, и я должен признать, что я новичок в Java. Я пытался подключить его к MySQL и добился успеха. Проблема возникла, когда я понял, что должен создать класс с информацией с экрана приветствия и наследовать данные по всей программе. Итак, я создал свои классы, а именно. Базовый класс и дочерний класс. После этого мой JButton просто ничего не делал. Вот код.

 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. Реакция на нажатие кнопки означает, что где-то должен быть реализован прослушиватель действий. Я не вижу этого в вашем коде. Пожалуйста, пересмотрите свой пример, чтобы сделать вопрос более понятным.

2. Вы загружаете неправильный драйвер. На самом деле, вы вообще явно не загружаете какой-либо драйвер (реальный драйвер, возможно, уже был загружен ServiceLoader , если это драйвер, совместимый с JDBC4). Но это другая проблема. Я бы также добавил e.printStackTrace() внутри catch, чтобы вы могли видеть любые причины проблемы во всех деталях в стандартном выводе.

3. компилируется ли этот код вообще? вы не можете определить класс внутри метода так, как вы определили, также BaseClass, похоже, закрывается перед запуском следующего метода. Предполагая, что все это находится внутри другого класса, ChildClass необходимо удалить в первую очередь. Я думаю, вам следует вставить весь код в *.java, из которого это является выдержкой.

Ответ №1:

где находится ваш JButton? вам нужно добавить ActionListener к этому, например

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