e ai pessoal, é o seguinnte, estou precisando de ajuda aqui :?
fiz um JComboBox que revebe um array de strings, o metodo getSelectedItem() retorna um objeto, então fiz um getSelectedItem().toString… mas pra minha surpresa mesmo assim não funcionou
aparentemente meu programa não aparece nenhum erro de sintaxe nem nada, roda direitinho…
mas ta dando erro justamente na linha do getSelectedItem().toString():
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at view.UIInsereProduto.novoProduto(UIInsereProduto.java:106)
at view.UIInsereProduto.access$0(UIInsereProduto.java:101)
at view.UIInsereProduto$1.actionPerformed(UIInsereProduto.java:82)
[code]
public class UIInsereProduto extends Interfaces {
private static UIInsereProduto tela;
private JLabel lbDesc;
private JTextField tfDesc;
private JLabel lbEstoque;
private JTextField tfEstoque;
private JLabel lbPreco;
private JTextField tfPreco;
private JLabel lbTipo;
private JComboBox cbTipo;
private JButton btnInserir;
private DefaultTableModel modelo;
private UIInsereProduto(Programas programa,DefaultTableModel modelo) {
super(programa,"Novo Produto");
this.setSize(630, 200);
this.getContentPane().setLayout(null);
this.setResizable(false);
this.modelo = modelo;
lbDesc = new JLabel("Descrição:");
lbDesc.setBounds(new Rectangle(15, 30, 67, 21));
this.getContentPane().add(lbDesc, null);
tfDesc = new JTextField();
tfDesc.setToolTipText("Informe nome ou descrição do produto");
tfDesc.setBounds(new Rectangle(80, 30, 500, 21));
this.getContentPane().add(tfDesc, null);
lbEstoque = new JLabel("Estoque:");
lbEstoque.setBounds(new Rectangle(15, 80, 57, 21));
this.getContentPane().add(lbEstoque, null);
tfEstoque = new JTextField();
tfEstoque.setToolTipText("Quantidade em estoque");
tfEstoque.setBounds(new Rectangle(80, 80, 60, 21));
this.getContentPane().add(tfEstoque, null);
lbPreco = new JLabel("Preço:");
lbPreco.setBounds(new Rectangle(15, 130, 57, 21));
this.getContentPane().add(lbPreco, null);
tfPreco = new JTextField();
tfPreco.setToolTipText("Valor do Produto");
tfPreco.setBounds(new Rectangle(80, 130, 60, 21));
this.getContentPane().add(tfPreco, null);
lbTipo = new JLabel("Tipo:");
lbTipo.setBounds(new Rectangle(295, 80, 57, 21));
this.getContentPane().add(lbTipo, null);
String [] tiposProdutos = {"Alimentício", "Limpeza", "Computação", "Eletrônicos", "Beleza","Outros"}; //array de strings do JComboBox
JComboBox cbTipo = new JComboBox(tiposProdutos); //JComboBox
cbTipo.setBounds(new Rectangle(350, 80, 150, 21));
this.getContentPane().add(cbTipo, null);
btnInserir = new JButton("OK");
btnInserir.setBounds(new Rectangle(504, 120, 100, 30));
this.getContentPane().add(btnInserir, null);
btnInserir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
novoProduto();
tfDesc.setText(null);
tfEstoque.setText(null);
tfPreco.setText(null);
}
});
}
public static UIInsereProduto getInstance(Programas programa,DefaultTableModel modelo) {
if (tela == null){
tela = new UIInsereProduto(programa,modelo);
}
return tela;
}
private void novoProduto() {
String desc = tfDesc.getText();
int estoque = Integer.parseInt(tfEstoque.getText());
float preco = Float.parseFloat(tfPreco.getText());
String tipo = cbTipo.getSelectedItem().toString();//local do erro
Produtos produto = new Produtos(desc,estoque,preco,tipo);
meuPrograma.adicionaProduto(produto);
modelo.fireTableDataChanged();
this.setVisible(false);
}
}
[/code]
brigadão pessoal!