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

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

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

Доброго времени суток! Суть программки. В комбобокс попадают все данные пользователей, котоыре есть в БД, после выбора конкретного пользователя хотел что бы имя этого пользователя прописывалась в Label. Не могу понять как это можно реализовать правильно. Заранее спасибо за помощь. Ошибка тут:
Листинг программы
  1. ActionListener actionListener = new ActionListener() {
  2. public void actionPerformed(ActionEvent e) {
  3. JComboBox box = (JComboBox)e.getSource();
  4. String item = (String)box.getSelectedItem();
  5. label.setText(item);
  6. }
  7. };
А это весь код.
Листинг программы
  1. package gui_1;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6.  
  7. import javax.swing.JComboBox;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11. import java.sql.*;
  12. import java.util.Vector;
  13. public class Combobox extends JFrame{
  14. private JComboBox<Object> faceCombo;
  15. private JLabel label;
  16. private static final int DEFAULT_SIZE = 24;
  17. public Combobox(){
  18. Connection con = null;
  19. Statement stmt = null;
  20. ResultSet rs = null;
  21. Vector<Object> columnNames = new Vector<Object>();
  22. Vector<Object> data = new Vector<Object>();
  23. try
  24. {
  25. // Connect to an Access Database
  26. String url = "jdbc:sqlserver://LOCAL";
  27. con = DriverManager.getConnection(url, "LOG", "PASS");
  28. stmt = con.createStatement();
  29. rs = stmt.executeQuery("SELECT name FROM users");
  30. ResultSetMetaData md = rs.getMetaData();
  31. int columns = md.getColumnCount();
  32.  
  33. // Get row data
  34. while (rs.next())
  35. {
  36. Vector<String> row = new Vector<String>(columns);
  37. for (int i = 1; i <= columns; i++)
  38. {
  39. row.addElement( (String) rs.getObject(i) );
  40. }
  41. data.addElement( row );
  42. }
  43. rs.close();
  44. stmt.close();
  45. con.close();
  46. }
  47. catch(Exception e)
  48. {
  49. System.out.println( e );
  50. }
  51. // END DataBase
  52. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  53. Container content = getContentPane();
  54. label = new JLabel ("Empty label!");
  55. label.setFont(new Font("Serif", Font.PLAIN, DEFAULT_SIZE));
  56. content.add(label, BorderLayout.CENTER);
  57.  
  58. ActionListener actionListener = new ActionListener() {
  59. public void actionPerformed(ActionEvent e) {
  60. JComboBox box = (JComboBox)e.getSource();
  61. String item = (String)box.getSelectedItem();
  62. label.setText(item);
  63. }
  64. };
  65. faceCombo = new JComboBox(data); // Add information from DB to ComboBox
  66. faceCombo.addActionListener(actionListener);
  67. JPanel comboPanel = new JPanel();
  68. comboPanel.add(faceCombo);
  69. add(comboPanel, BorderLayout.SOUTH);
  70. setPreferredSize(new Dimension(600, 300));
  71. }
  72. public static void main(String[] args) {
  73. // TODO Auto-generated method stub
  74. Combobox cmb = new Combobox();
  75. cmb.pack();
  76. cmb.setLocationRelativeTo(null);
  77. cmb.setVisible(true);
  78. }
  79. }

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

textual
Листинг программы
  1. import java.awt.BorderLayout;
  2. import java.awt.Dimension;
  3. import java.awt.Font;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.sql.*;
  7. import java.sql.SQLException;
  8. import java.util.Vector;
  9. import javax.swing.*;
  10.  
  11. /**
  12.  *
  13.  * @author Nicholas White
  14.  */
  15. public class Combobox extends JFrame {
  16.  
  17.      private JComboBox<Object> faceCombo;
  18.      private JLabel label;
  19.      private static final int DEFAULT_SIZE = 24;
  20.  
  21.     public Combobox() throws SQLException {
  22.         Connection con = getConnection();
  23.        
  24.              PreparedStatement stmt = con.prepareStatement("SELECT name FROM users");
  25.              ResultSet rs = stmt.executeQuery();
  26.              Vector<String> data = new Vector<String>();
  27.            
  28.              while (rs.next())  {
  29.                data.add(rs.getString("name"));
  30.             }
  31.              
  32.            
  33.         JPanel content = new JPanel(new BorderLayout());
  34.         label = new JLabel ("Empty label!");
  35.         label.setFont(new Font("Serif", Font.PLAIN, DEFAULT_SIZE));
  36.         content.add(label, BorderLayout.NORTH);
  37.        
  38.         faceCombo = new JComboBox(data);
  39.         faceCombo.addActionListener(new ActionListener() {
  40.             @Override
  41.             public void actionPerformed(ActionEvent e) {
  42.                 String s = faceCombo.getSelectedItem().toString();
  43.                 label.setText(s);
  44.             }
  45.         });
  46.        
  47.         content.add(faceCombo, BorderLayout.SOUTH);
  48.        
  49.          setContentPane(content);
  50.         setPreferredSize(new Dimension(600, 300));
  51.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  52.     }
  53.    
  54.    
  55.    
  56.     public static void main(String[] args) throws SQLException {
  57.         Combobox cmb = new Combobox();
  58.         cmb.pack();    
  59.         cmb.setLocationRelativeTo(null);
  60.         cmb.setVisible(true);
  61.     }
  62.  
  63.     private Connection getConnection() {
  64.          try{
  65.            String driver = "com.mysql.jdbc.Driver";
  66.            String url = "jdbc:mysql://localhost:3306/mynewdatabase";
  67.            String password = "PWord[]2208";
  68.            String userName = "root";
  69.            Class.forName(driver);
  70.            Connection conn = (Connection) DriverManager.getConnection(url, userName, password);
  71.          
  72.           System.out.println("Connected");
  73.           return conn;
  74.          } catch(Exception e) {System.err.println(e);}
  75.          return null;
  76.     }
  77.    
  78. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут