2015-06-02 4 views
0

В моей программе Java у меня возникли проблемы с запуском файла Addplaylist.java. Он открывается отлично ... Но для меня, чтобы быть в состоянии add a playlist Мне понадобятся имена каждого member из базы данных!База данных не отображает результаты?

Я поместил в какой-то System.out.println("")'s, чтобы проверить, где я добираюсь в файле, и по какой-то причине Im только делает это addPlaylist() GUI. Я попытался отладить его и найти ошибку, но я не могу ее найти!

Этот файл вызывается из main GUI. Я знаю, что база данных имеет в ней значения и что соединение работает, потому что я использовал его в другом файле.

Вот мой addPlaylist.java:

package GUI; 

import DBconnection.connection; 


import java.awt.Container; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.swing.ButtonGroup; 
import javax.swing.JButton; 
import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JRadioButton; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 

/** 
* 
* @author james 
*/ 
public class addPlaylist extends JFrame implements ActionListener{ 
    private Container mainCon = this.getContentPane(); 
    private JPanel formPanel = new JPanel(); 
    private JPanel paidPanel = new JPanel(); 

    /*ALL USER INPUT FIELDS*************************/ 
    //Buttons 
    private static JButton submitPlaylist = new JButton("Add Playlist"); 

    /*TEXT FIELDS BOXES *******************************/ 
    private JLabel lblPlaylistName = new JLabel("Playlist Name: "); 
    private JTextField txtPlaylistName = new JTextField("", 15); 
    /*TEXT FIELDS BOXES *******************************/ 

    /*COMBO BOXES *******************************/ 
    private JLabel lblNames = new JLabel(); 
    private JComboBox comNames = new JComboBox(); 
    /*COMBO BOXES *******************************/ 

    /*DECLARED VARIABLES ****************************/ 
    // private String membersData = ""; 
    /*DECLARED VARIABLES ****************************/ 

    public addPlaylist(){ 
     super("Add a Playlist"); 
     this.setBounds(400, 500, 315,400); 
     mainCon.add(formPanel); 

     /** BEGINNING OF FORM ************/ 
     formPanel.add(lblPlaylistName); 
     formPanel.add(txtPlaylistName); 

     //Combobox (Names) 
     formPanel.add(lblNames); 
     formPanel.add(comNames); 
     //comNames.addActionListener(this); 

     //txtPlaylistName.addActionListener(this); 
     System.out.println("In add playlist"); 
    } 

    public void actionPerformed(ActionEvent action) { 
     System.out.println("In Action Performed"); 
     /**ADD DATABASE CONNECTIONS*****************/ 
     /****** Set the default code - needed for SQL statements *************/ 
     Connection conDB = null; 
     Statement stmt = null; 
     ResultSet membersData = null; 

     /** GET MYSQL DETAILs ---------**/ 
     String url = connection.geturl(); 
     String username = connection.getUsername(); 
     String password = connection.getPassword(); 


     try{ 
      System.out.println("In Try Statement"); 
      /****** DEFAULT MYSQL DRIVERS **************************/ 
      //load the MYSQL driver 
       Class.forName(connection.getDriver()); 
       conDB = DriverManager.getConnection(url, username, password); 
       //create statement 
       stmt = conDB.createStatement(); 
      /****** DEFAULT MYSQL DRIVERS **************************/ 

      String sqlSelect = "SELECT membId, name, memberType FROM members"; 
      membersData = stmt.executeQuery(sqlSelect); 
      System.out.println("After executed"); 


      while(membersData.next()){ 
//    comNames.addItem(membersData.getString("name")); 
       System.out.println("In while loop"); 
       String membId = membersData.getString("membId"); 
       System.out.println(membId); 

    //   System.out.println(membersData.getString("name")); 
    //   System.out.println(membersData.getString("memberType")); 
      } 
      //membersData.close(); 
     } 
     catch(SQLException er){ 
      System.out.println("Error was: " + er); 
     } catch (ClassNotFoundException ex) { 
      System.out.println("SECOND ERROR: " + ex); 
     } 
    } 
} 
+0

Вы должны иметь слушатель действия для JFrame Имеют действие слушателя вашей кнопки в addPlaylist() застройщик -> (submitPlaylist .addActionListener (это);) – Praveen

+0

@Praveen - Я добавил ответ. Если бы вы знали, почему в моем JComboBox есть два элемента? Есть два копий каждого элемента, и если вы нажмете на один, то другой станет галочкой ?! – James111

+0

Имейте ItemListener для JComboBox 1 и обновляйте следующий, когда первый обновляется. – Praveen

ответ

0

Так, чтобы исправить эту проблему, что я был поставлен весь код, необходимый для отображения Combo box включают Database connections and result sets etc... в функции под названием showCombo(). Затем я вызвал showCombo() внутри метода addPlaylist() { }.

Как так:

public void showCombo(){ 
      /****** Set the default code - needed for SQL statements *************/ 
     Connection conDB = null; 
     Statement stmt = null; 
     ResultSet membersData = null; 



     /** GET MYSQL DETAILs ---------**/ 
     String url = connection.geturl(); 
     String username = connection.getUsername(); 
     String password = connection.getPassword(); 


     try{ 
      System.out.println("In Try Statement"); 
      /****** DEFAULT MYSQL DRIVERS **************************/ 
      //load the MYSQL driver 
       Class.forName(connection.getDriver()); 
       conDB = DriverManager.getConnection(url, username, password); 
       //create statement 
       stmt = conDB.createStatement(); 
      /****** DEFAULT MYSQL DRIVERS **************************/ 

      String sqlSelect = "SELECT membId, name, memberType FROM members"; 
      membersData = stmt.executeQuery(sqlSelect); 
      System.out.println("After executed"); 



      while(membersData.next()){ 
       comNames.addItem(membersData.getString("name")); 
//    System.out.println("In while loop"); 
//    String membId = membersData.getString("membId"); 
//    System.out.println(membId); 

//    System.out.println(membersData.getString("name")); 
//    System.out.println(membersData.getString("memberType")); 
      } 
      //membersData.close(); 
     } 
     catch(SQLException er){ 
      System.out.println("Error was: " + er); 
     } catch (ClassNotFoundException ex) { 
      System.out.println("SECOND ERROR: " + ex); 
     } 
     } 
Смежные вопросы