Ошибка при попытки записать данные в Label из ComboBoxe - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Суть программки. В комбобокс попадают все данные пользователей, котоыре есть в БД, после выбора конкретного пользователя хотел что бы имя этого пользователя прописывалась в Label. Не могу понять как это можно реализовать правильно. Заранее спасибо за помощь. Ошибка тут:
ActionListener actionListener = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                 JComboBox box = (JComboBox)e.getSource();
                 String item = (String)box.getSelectedItem();
                 label.setText(item);    
                }
            };
А это весь код.
package gui_1;
 
import java.awt.*;
import java.awt.event.*; 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
import java.sql.*;
import java.util.Vector;
 
public class Combobox extends JFrame{
    private JComboBox<Object> faceCombo;
    private JLabel label;
    private static final int DEFAULT_SIZE = 24;
    
    public Combobox(){
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
           
        Vector<Object> columnNames = new Vector<Object>();
        Vector<Object> data = new Vector<Object>();
 
        try
        {
            //  Connect to an Access Database
            String url = "jdbc:sqlserver://LOCAL"; 
            con = DriverManager.getConnection(url, "LOG", "PASS");
            stmt = con.createStatement();
            rs = stmt.executeQuery("SELECT name FROM users");
             
            ResultSetMetaData md = rs.getMetaData();
            int columns = md.getColumnCount();

            //  Get row data
            while (rs.next())
            {
                Vector<String> row = new Vector<String>(columns);
 
                for (int i = 1; i <= columns; i++)
                {
                    row.addElement( (String) rs.getObject(i) );
                }
 
                data.addElement( row );
            }
 
            rs.close();
            stmt.close(); 
            con.close();
        }
        catch(Exception e)
        {
            System.out.println( e );
        }
        
        // END DataBase
 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        Container content = getContentPane();
        label = new JLabel ("Empty label!");
        label.setFont(new Font("Serif", Font.PLAIN, DEFAULT_SIZE));
        content.add(label, BorderLayout.CENTER);

           ActionListener actionListener = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                 JComboBox box = (JComboBox)e.getSource();
                 String item = (String)box.getSelectedItem();
                 label.setText(item);    
                }
            }; 
 
        faceCombo = new JComboBox(data);  // Add information from DB to ComboBox
        faceCombo.addActionListener(actionListener);
        
        JPanel comboPanel = new JPanel();
        comboPanel.add(faceCombo); 
        add(comboPanel, BorderLayout.SOUTH);
         
        setPreferredSize(new Dimension(600, 300)); 
    } 
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Combobox cmb = new Combobox();
        cmb.pack();     
        cmb.setLocationRelativeTo(null);
        cmb.setVisible(true);
    }
 
}

Решение задачи: «Ошибка при попытки записать данные в Label из ComboBoxe»

textual
Листинг программы
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.*;
 
/**
 *
 * @author Nicholas White
 */
public class Combobox extends JFrame {
 
     private JComboBox<Object> faceCombo;
     private JLabel label;
     private static final int DEFAULT_SIZE = 24;
 
    public Combobox() throws SQLException {
        Connection con = getConnection();
        
             PreparedStatement stmt = con.prepareStatement("SELECT name FROM users");
             ResultSet rs = stmt.executeQuery();
             Vector<String> data = new Vector<String>();
           
             while (rs.next())  {
               data.add(rs.getString("name"));
            }
              
            
        JPanel content = new JPanel(new BorderLayout());
        label = new JLabel ("Empty label!");
        label.setFont(new Font("Serif", Font.PLAIN, DEFAULT_SIZE));
        content.add(label, BorderLayout.NORTH);
        
        faceCombo = new JComboBox(data);
        faceCombo.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String s = faceCombo.getSelectedItem().toString();
                label.setText(s);
            }
        });
        
        content.add(faceCombo, BorderLayout.SOUTH); 
        
         setContentPane(content);
        setPreferredSize(new Dimension(600, 300));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    
    
    public static void main(String[] args) throws SQLException {
        Combobox cmb = new Combobox();
        cmb.pack();     
        cmb.setLocationRelativeTo(null);
        cmb.setVisible(true);
    }
 
    private Connection getConnection() {
         try{
           String driver = "com.mysql.jdbc.Driver";
           String url = "jdbc:mysql://localhost:3306/mynewdatabase";
           String password = "PWord[]2208";
           String userName = "root";
           Class.forName(driver);
           Connection conn = (Connection) DriverManager.getConnection(url, userName, password);
          
          System.out.println("Connected");
          return conn;
         } catch(Exception e) {System.err.println(e);}
         return null;
    }
    
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5