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