Populating Swing JList using SQL Database
Date: May 28, 2011 09:58PM
Sup peeps, im trying to to populate a JList using the entries in a table in a database i created.
package networks;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.PrintWriter;
import java.sql.*;
public class Contestantlist extends javax.swing.JFrame {
/** Creates new form contestantList */
public Contestantlist() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
try
{
// Load driver's class, inilialize, register with DriverManager
//Class.forName("oracle.jdbc.driver.OracleDriver");
Class.forName("org.gjt.mm.mysql.Driver");
}
catch (ClassNotFoundException e)
{
System.out.println("Unable to load driver class");
return;
}
ResultSet rs = null;
try
{
//
// Call DriverManager's methods (all are static)
//
// To print log on sysout
//DriverManager.setLogStream(System.out); //JDBC 1.x driver
// DriverManager.setLogWriter(new PrintWriter(System.out) );
// Connect to database. DriverManager loads each registered driver
// in turn until one can handle the database URL format
//Connection con = DriverManager.getConnection(
// "jdbc:oracle:thin:@host.domain.com:1521:db_name"
// ,"scott","tiger");
// Connection con = DriverManager.getConnection("jdbc:mySql://localhost:3306/Contest","root","blink182");
// Get the DatabaseMetaData object to display database info
// DatabaseMetaData dmd = con.getMetaData();
// Statement stmt = con.createStatement();
// String sql;
// sql = "SELECT Username FROM Contestant WHERE Username IS NOT NULL";
// rs = stmt.executeQuery(sql); //throws SQLExecption if fails
// printResultSet(rs);
DriverManager.setLogWriter(new PrintWriter(System.out) );
Connection con = DriverManager.getConnection("jdbc:mySql://localhost:3306/Contest","root","blink182");
// Get the DatabaseMetaData object to display database info
DatabaseMetaData dmd = con.getMetaData();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
String sql;
Statement stmt = con.createStatement();
sql = "SELECT Username FROM Contestant WHERE Username IS NOT NULL";
rs = stmt.executeQuery(sql); //throws SQLExecption if fails
ResultSetMetaData rsmd = rs.getMetaData();
int numCols = rsmd.getColumnCount();*
// Display data, fetching until end of the result set
// Calling next moves to first or next row and returns true if success
while(rs.next() )
{
// Each rs after next() contains next rows data
for(final int i=1; i<=numCols; i++)
{
if(i > 1) System.out.print(",");
// Almost all SQL types can be cast to a string by JDBC
// System.out.print(rs.getString(i));
theList.setModel(new javax.swing.AbstractListModel() {
String[] strings = { rs.getString(i) };
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return rs.getString(i); }
});
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
System.out.println("");
}
}
catch(Exception f)
{
}
titleLabel = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
// theList.setVisibleRowCount(6);
theList = new javax.swing.JList();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
titleLabel.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
titleLabel.setText("The Scrupulous Contestants!");
/* theList.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 3", "Item 4", "Item 5", "Item 4", "Item 5" };
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings; }
});*/
jScrollPane1.setViewportView(theList);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(70, 70, 70)
.addComponent(titleLabel))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(71, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(titleLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(124, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
/* private static void printResultSet(ResultSet rs) throws SQLException
{
DriverManager.setLogWriter(new PrintWriter(System.out) );
Connection con = DriverManager.getConnection("jdbc:mySql://localhost:3306/Contest","root","blink182");
// Get the DatabaseMetaData object to display database info
DatabaseMetaData dmd = con.getMetaData();
String sql;
Statement stmt = con.createStatement();
sql = "SELECT Username FROM Contestant WHERE Username IS NOT NULL";
rs = stmt.executeQuery(sql); //throws SQLExecption if fails
ResultSetMetaData rsmd = rs.getMetaData();
int numCols = rsmd.getColumnCount();
// Display data, fetching until end of the result set
// Calling next moves to first or next row and returns true if success
while(rs.next() )
{
// Each rs after next() contains next rows data
for(int i=1; i<=numCols; i++)
{
if(i > 1) System.out.print(",");
// Almost all SQL types can be cast to a string by JDBC
System.out.print(rs.getString(i));
}
System.out.println("");
}
}*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Contestantlist().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JList theList;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel titleLabel;
// End of variables declaration
}
I can tell that im not using something correctly. Can you guys just point out how i should proceed through this? I encapsulated the piece of code that has got me confused.