java中的ComboBox不起作用bluej
Posted
技术标签:
【中文标题】java中的ComboBox不起作用bluej【英文标题】:ComboBox in java doesn´t work bluej 【发布时间】:2015-07-05 04:11:12 【问题描述】:我的 ComboBox 有问题,我到处搜索,我的代码很好。但是当我执行程序时,它显示一个错误 java.lang.NullPointerException
这是我的代码
package InventarioGUI;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.*;
public class VentanaInventario extends JFrame implements ActionListener
private JComboBox cmbProducto, cmbProveedor;
ConexionInventario Con = new ConexionInventario();
private PreparedStatement PST = null;
DefaultTableModel md;
JTable tabla;
Object data [][] = ;
String cabeza[] = "Cantidad", "Fecha Entrada", "Precio";
JScrollPane scroll;
public VentanaInventario()
super ("Inventario");
ComboProducto();
setLayout(null);
cmbProducto = new JComboBox();
cmbProducto.setMaximumRowCount(5);
cmbProducto.setBounds (120, 10, 150, 20);
add(cmbProducto);
private void ComboProducto()
try
String Sql = "SELECT Nombre_Producto FROM Producto";
Con.ExeSql(Sql);
while(Con.RS.next())
String pat = Con.RS.getString("Nombre_Producto");
cmbProveedor.addItem(pat);
catch(Exception ex)
JOptionPane.showMessageDialog(null, ex);
public static void main (String args[])
try
VentanaInventario frmVentanaInventario = new VentanaInventario();
frmVentanaInventario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmVentanaInventario.setSize (300, 250);
frmVentanaInventario.setVisible(true);
catch (Exception ex)
JOptionPane.showMessageDialog(null, "Error presentado al realizar operación", " VentanaInventario", JOptionPane.ERROR_MESSAGE);
所有连接和一切都在另一个类中,这很好。 拜托,帮助,我有几天的时间,我不知道我还能做什么!
【问题讨论】:
你能发布你的堆栈跟踪吗? 它只显示了一个 JOptionPane 使用“ex.printStackTrace”将堆栈跟踪打印到控制台setLayout(null);
这怎么没有问题?
【参考方案1】:
您需要先实例化cmbProveedor
,然后才能在您的ComboProducto()
方法中使用它。
只需添加以下行:
cmbProveedor = new JComboBox();
您可以在ComboProducto()
方法调用之前将此行放在构造函数中,或者在使用cmbProveedor
之前将该行添加到ComboProducto()
中。
【讨论】:
忽略 cmbProveedor 我只使用 ComboProducto() 有方法,而 cmbProducto 有 ComboBox 的名称 您不能忽略 cmbProveedor,因为您使用 cmbProveedor.addItem(pat);在 ComboProducto() 中。每次创建 VentanaInventario() 的实例时;你打电话给 ComboProducto();因为它是构造函数的第二行。仅仅声明一个变量并不会实例化它或实际创建它。如果您不使用 cmbProveedor,则删除该行。否则,您必须在使用它之前通过调用 new 来实例化它。由于您在实际创建 cmbProveedor 之前使用了它,因此您将得到一个空指针异常。以上是关于java中的ComboBox不起作用bluej的主要内容,如果未能解决你的问题,请参考以下文章
ComboBox 在 ExtJS 的 EditorGridPanel 中不起作用
WPF MVVM ComboBox SelectedItem 或 SelectedValue 不起作用