Ошибка при попытки записать данные в 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;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д