Note that there are some explanatory texts on larger screens.

plurals
  1. POCannot show the results from the database using a JList
    primarykey
    data
    text
    <p>This got to be an easy fix. I have been trying all day yesterday, and I cannot get this thing working.I cannot fetch data from a database and show it in a JList. Normally, I separate the classes in different files, but for the purpose of me to learn Java, I put everything in one file.</p> <pre><code>public class Window extends JFrame{ private static final long serialVersionUID = 1L; // declare global text fields private JTextField txtCustomerID; private JTextField txtFirstName; private JTextField txtLastName; private JTextField txtMiddleInitial; private JTextField txtStreet; private JTextField txtCity; private JTextField txtState; private JTextField txtZip; private JTextField txtPhone; private JTextField txtEmail; private JTextField txtSearch; // declare global list private static JList list; private String[] results; private DefaultListModel model; // declare global labels private JLabel labFirstName; private JLabel labLastName; private JLabel labMiddleInitial; private JLabel labStreet; private JLabel labCity; private JLabel labState; private JLabel labZip; private JLabel labPhone; private JLabel labEmail; // declare global buttons private JButton newCustomer; private JButton open; private JButton update; private JButton cancel; private JButton remove; private JButton search; // function that adds components to GridBagConstraints Layout Manager private void addComponent(JPanel panel, JComponent theComponent, int xPos, int yPos, int compWidth, int compHeight, int place, int stretch, boolean useScrollPane){ GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = xPos; gbc.gridy = yPos; gbc.gridwidth = compWidth; gbc.gridheight = compHeight; gbc.weightx = 100; gbc.weighty = 100; gbc.insets = new Insets(2,2,2,2); gbc.anchor = place; gbc.fill = stretch; if(useScrollPane){ JScrollPane scrollPane = new JScrollPane(theComponent); scrollPane.setPreferredSize(new Dimension(400, 200)); panel.add(scrollPane, gbc); } else { panel.add(theComponent, gbc); } } // function that adds components to panel private void addComponent2(JPanel panel, JComponent theComponent){ panel.add(theComponent); } // function that connects and tests to the database private void insertDatabase(){ try { Connection connect = null; Class.forName("com.mysql.jdbc.Driver"); String url = ""; String user = ""; String password =""; connect = DriverManager.getConnection(url,user,password); Statement SQLStatement = connect.createStatement(); String insert = "INSERT INTO customerinfo(FirstName," + "LastName, MiddleInitial, Street, City, State, ZipCode, Phone, Email) VALUES('"+ txtFirstName.getText() +"', " + "'" + txtLastName.getText() +"', '" + txtMiddleInitial.getText() +"', '" + txtStreet.getText() +"', " + "'" + txtCity.getText() +"', '" + txtState.getText() +"', '" + Integer.parseInt(txtZip.getText()) +"'" + ", '" + txtPhone.getText() +"', '" + txtEmail.getText() +"')"; SQLStatement.execute(insert); connect.close(); } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(this, "Where is your Mysql JDBC Driver?"); e.printStackTrace(); } catch (SQLException e){ JOptionPane.showMessageDialog(this, "SQLException: " + e.getMessage()); JOptionPane.showMessageDialog(this, "VendorError: " + e.getErrorCode()); } } // function that checks for empty fields private void checkForEmptyFields(){ String[] labValues = {labFirstName.getText(), labLastName.getText(), labMiddleInitial.getText(), labStreet.getText(), labCity.getText(), labState.getText(), labZip.getText(), labPhone.getText(), labEmail.getText()}; String[] values = {txtFirstName.getText(), txtLastName.getText(), txtMiddleInitial.getText(), txtStreet.getText(), txtCity.getText(), txtState.getText(), txtZip.getText(), txtPhone.getText(), txtEmail.getText()}; for(int i=0; i&lt;values.length; i++){ if(values[i].length() == 0){ JOptionPane.showMessageDialog(this, labValues[i].replace(":", "") + " field is empty"); } } } // function that will update a field in the database private void updateDatabase(){ try { Connection connect = null; Class.forName("com.mysql.jdbc.Driver"); String url = ""; String user = ""; String password =""; connect = DriverManager.getConnection(url,user,password); Statement SQLStatement = connect.createStatement(); String update = "UPDATE customerinfo SET FirstName='" + txtFirstName.getText() +"', LastName='" + txtLastName.getText() +"', " + "MiddleInitial='"+ txtMiddleInitial.getText() +"', Street='"+ txtStreet.getText() +"', City='"+ txtCity.getText() +"', " + "State='"+ txtState.getText() +"', ZipCode='"+ txtZip.getText() +"', Phone='"+ txtPhone.getText() +"', " + "Email='"+ txtEmail.getText() +"'" + "WHERE CustomerID='"+ txtCustomerID.getText() +"'"; SQLStatement.execute(update); } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(this, "Where is your Mysql JDBC Driver?"); e.printStackTrace(); } catch (SQLException e){ JOptionPane.showMessageDialog(this, "SQLException: " + e.getMessage()); JOptionPane.showMessageDialog(this, "VendorError: " + e.getErrorCode()); } } // function that will delete a record from the database private void deleteRecord(){ try { Connection connect = null; Class.forName("com.mysql.jdbc.Driver"); String url = ""; String user = ""; String password =""; connect = DriverManager.getConnection(url,user,password); Statement SQLStatement = connect.createStatement(); String delete = "DELETE FROM customerinfo WHERE CustomerID='"+ txtCustomerID.getText() +"'"; SQLStatement.execute(delete); connect.close(); } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(this, "Where is your Mysql JDBC Driver?"); e.printStackTrace(); } catch (SQLException e){ JOptionPane.showMessageDialog(this, "SQLException: " + e.getMessage()); JOptionPane.showMessageDialog(this, "VendorError: " + e.getErrorCode()); } } // function that will search for records in the database private void searchRecord(){ model = new DefaultListModel(); list = new JList(model); list.setVisibleRowCount(3); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //list.setFixedCellHeight(27); //list.setFixedCellWidth(130); try { model.clear(); Connection connect = null; Class.forName("com.mysql.jdbc.Driver"); String url = ""; String user = ""; String password =""; connect = DriverManager.getConnection(url,user,password); Statement SQLStatement = connect.createStatement(); String select = "SELECT * FROM customerinfo WHERE LastName LIKE '"+ txtSearch.getText().trim() +"%'"; ResultSet rows = SQLStatement.executeQuery(select); while(rows.next()){ model.addElement(rows.getString("FirstName") + "\n"); System.out.print(model.toString() + "\n"); } System.out.print(model.getSize()); rows.close(); SQLStatement.close(); connect.close(); txtSearch.setText(""); } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(this, "Where is your Mysql JDBC Driver?"); e.printStackTrace(); } catch (SQLException e){ JOptionPane.showMessageDialog(this, "SQLException: " + e.getMessage()); JOptionPane.showMessageDialog(this, "VendorError: " + e.getErrorCode()); } } // function that clear fields once register private void clearFields(){ txtFirstName.setText(""); txtLastName.setText(""); txtMiddleInitial.setText(""); txtStreet.setText(""); txtCity.setText(""); txtState.setText(""); txtZip.setText(""); txtPhone.setText(""); txtEmail.setText(""); } // Implement Action Listener private class handler implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // if user clicks on New Customer Button, do the following... if(e.getSource() == newCustomer){ checkForEmptyFields(); insertDatabase(); clearFields(); } else if(e.getSource() == update){ checkForEmptyFields(); updateDatabase(); clearFields(); } else if(e.getSource() == remove){ checkForEmptyFields(); deleteRecord(); clearFields(); } else if(e.getSource() == cancel){ clearFields(); } else if(e.getSource() == open){ } else if(e.getSource() == search){ searchRecord(); } } } private class selectRow implements ListSelectionListener{ @Override public void valueChanged(ListSelectionEvent event) { if(!event.getValueIsAdjusting()){ String selection = list.getSelectedValue().toString(); } } } // window constructor public Window(){ JPanel theMainPanel = new JPanel(new BorderLayout()); JPanel thePanel = new JPanel(); thePanel.setLayout(new GridBagLayout()); JTabbedPane tabbedPane = new JTabbedPane(); JLabel labCustomerID = new JLabel("Customer ID:"); addComponent(thePanel, labCustomerID, 0, 0, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtCustomerID = new JTextField(24); txtCustomerID.setEnabled(false); txtCustomerID.setBackground(Color.LIGHT_GRAY); addComponent(thePanel, txtCustomerID, 1, 0, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); open = new JButton("Open"); addComponent(thePanel, open, 1, 0, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); labFirstName = new JLabel("First Name:"); addComponent(thePanel, labFirstName, 0, 1, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtFirstName = new JTextField(30); addComponent(thePanel, txtFirstName, 1, 1, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); labLastName = new JLabel("Last Name:"); addComponent(thePanel, labLastName, 0, 3, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtLastName = new JTextField(30); addComponent(thePanel, txtLastName, 1, 3, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); labMiddleInitial = new JLabel("Middle Initial:"); addComponent(thePanel, labMiddleInitial, 0, 4, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtMiddleInitial = new JTextField(30); addComponent(thePanel, txtMiddleInitial, 1, 4, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); labStreet = new JLabel("Street:"); addComponent(thePanel, labStreet, 0, 5, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtStreet = new JTextField(30); addComponent(thePanel, txtStreet, 1, 5, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); labCity = new JLabel("City:"); addComponent(thePanel, labCity, 0, 6, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtCity = new JTextField(30); addComponent(thePanel, txtCity, 1, 6, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); labState = new JLabel("State:"); addComponent(thePanel, labState, 0, 7, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtState = new JTextField(30); addComponent(thePanel, txtState, 1, 7, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); labZip = new JLabel("Zip Code:"); addComponent(thePanel, labZip, 0, 8, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtZip = new JTextField(5); addComponent(thePanel, txtZip, 1, 8, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); labPhone = new JLabel("Phone:"); addComponent(thePanel, labPhone, 0, 9, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtPhone = new JTextField(30); addComponent(thePanel, txtPhone, 1, 9, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); labEmail = new JLabel("Email:"); addComponent(thePanel, labEmail, 0, 10, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtEmail = new JTextField(30); addComponent(thePanel, txtEmail, 1, 10, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); this.add(thePanel, BorderLayout.NORTH); JPanel thePanel2 = new JPanel(); thePanel2.setLayout(new FlowLayout(FlowLayout.RIGHT)); newCustomer = new JButton("New Customer"); addComponent2(thePanel2, newCustomer); update = new JButton("Update"); addComponent2(thePanel2, update); remove = new JButton("Remove"); addComponent2(thePanel2, remove); cancel = new JButton("Cancel"); addComponent2(thePanel2, cancel); this.add(thePanel2, BorderLayout.CENTER); JPanel thePanel3 = new JPanel(new GridBagLayout()); thePanel3.setBorder(BorderFactory.createTitledBorder("Customer Action")); JLabel labSearch = new JLabel("Search By Last Name:"); addComponent(thePanel3, labSearch, 0, 0, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); txtSearch = new JTextField(15); addComponent(thePanel3, txtSearch, 1, 0, 1, 1, GridBagConstraints.WEST, GridBagConstraints.NONE, false); search = new JButton("Search"); addComponent(thePanel3, search, 2, 0, 1, 1, GridBagConstraints.EAST, GridBagConstraints.NONE, false); //JScrollPane scrollPane = new JScrollPane(list); //scrollPane.setPreferredSize(new Dimension(400,200)); addComponent(thePanel3, list, 0, 1, 3, 1, GridBagConstraints.CENTER, GridBagConstraints.NONE, true); this.add(thePanel3, BorderLayout.SOUTH); theMainPanel.add(thePanel, BorderLayout.NORTH); theMainPanel.add(thePanel2, BorderLayout.CENTER); theMainPanel.add(thePanel3, BorderLayout.SOUTH); tabbedPane.addTab("Customer Info", theMainPanel); this.add(tabbedPane); handler listen = new handler(); newCustomer.addActionListener(listen); update.addActionListener(listen); remove.addActionListener(listen); cancel.addActionListener(listen); search.addActionListener(listen); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload