Tenho que colocar em um JList os dados de uma tabela para que o usuário selecione o que vai usar. Segue o código, não consegui colocar os dados na JList e não sei como arrumar.
Está dando o erro: java.lang.NullPointerException apontando para as linhas comentadas. Tem algo de errado no método atualizaLista()
[code]
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.DefaultListModel;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JList;
import java.awt.Button;
import java.awt.List;
import java.awt.Label;
import javax.swing.JLabel;
import br.com.bean.TabeladePreco;
import br.com.dao.TabeladePrecoDao;
import br.com.exception.DaoException;
import br.com.util.MascaraUtil;
import java.awt.Font;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class CarrinhoPedido extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JList list;
private JList list_1;
private TabeladePrecoDao tabDao = new TabeladePrecoDao();
private JList<String> lista;
private DefaultListModel<String> dlm = new DefaultListModel<String>();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
CarrinhoPedido frame = new CarrinhoPedido();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
* @throws DaoException
*/
public CarrinhoPedido() throws DaoException {
setIconImage(Toolkit.getDefaultToolkit().getImage(CarrinhoPedido.class.getResource("/br/com/images/logo_transp.png")));
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 581, 366);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 565, 328);
contentPane.add(panel);
panel.setLayout(null);
Button button = new Button("Adicionar >>");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//adicionaProteses();
}
});
button.setBounds(250, 93, 70, 22);
panel.add(button);
Button button_1 = new Button("<<Remover");
button_1.setBounds(250, 152, 70, 22);
panel.add(button_1);
List list_1 = new List();
list_1.setBounds(345, 79, 210, 182);
panel.add(list_1);
atualizaLista(lista); //Aponta pra cá o erro
List list = new List();
list.setBounds(10, 79, 222, 182);
panel.add(list);
// atualizaLista(lista);
JLabel lblPrtesesDaTabela = new JLabel("Pr\u00F3teses da Tabela");
lblPrtesesDaTabela.setFont(new Font("Tahoma", Font.PLAIN, 13));
lblPrtesesDaTabela.setBounds(40, 59, 124, 14);
panel.add(lblPrtesesDaTabela);
JLabel lblFormaoDoPedido = new JLabel("Forma\u00E7\u00E3o do Pedido");
lblFormaoDoPedido.setFont(new Font("Tahoma", Font.PLAIN, 13));
lblFormaoDoPedido.setBounds(374, 59, 136, 14);
panel.add(lblFormaoDoPedido);
JLabel lblFormaoDoPedido_1 = new JLabel("Forma\u00E7\u00E3o do Pedido");
lblFormaoDoPedido_1.setFont(new Font("Kalinga", Font.BOLD, 16));
lblFormaoDoPedido_1.setBounds(205, 11, 207, 14);
panel.add(lblFormaoDoPedido_1);
JButton btnSalvar = new JButton("Concluir");
btnSalvar.setBounds(391, 294, 89, 23);
panel.add(btnSalvar);
JLabel lblTotalPedido = new JLabel("Total Pedido:");
lblTotalPedido.setFont(new Font("Arial Black", Font.PLAIN, 12));
lblTotalPedido.setBounds(40, 298, 109, 14);
panel.add(lblTotalPedido);
textField = new JFormattedTextField(MascaraUtil.setMascara("R$###.##"));
textField.setBounds(135, 295, 86, 20);
panel.add(textField);
textField.setColumns(10);
}
public void atualizaLista(JList list) throws DaoException{
DefaultListModel<String> dlm = new DefaultListModel<String>();
lista.setModel(dlm); //O erro aponta pra cá
// dlm.setRowCount(0);
ArrayList<TabeladePreco> listaTab = new ArrayList<TabeladePreco>();
listaTab = (ArrayList<TabeladePreco>) tabDao.consultarProteses();
String dados[] = new String[3];
String protese = new String();
for (TabeladePreco obj : listaTab) {
dados[0] = String.valueOf(obj.getNumProtese()) ;
dados[1] = obj.getNomeProtese();
dados[2] = obj.getTipoProtese();
// dados[3] = String.valueOf(obj.getPrecoProtese());
protese = dados[0] + " / " + dados[1] + " / " + dados[2];
((DefaultListModel<String>) lista.getModel()).addElement(protese);
// lista.setListData(protese);
}
lista.repaint();
}[/code]
DAO
public List<TabeladePreco> consultarProteses() throws DaoException{
Connection conn = DbUtil.getConnection();
PreparedStatement statement = null;
ResultSet result = null;
List<TabeladePreco> listaTab = new ArrayList<TabeladePreco>();
try {
statement = conn.prepareStatement(CONSULTA_TABELADEPRECO);
result = statement.executeQuery();
while (result.next()) {
TabeladePreco objTab = new TabeladePreco();
objTab.setNumProtese(result.getInt(4));
objTab.setNomeProtese(result.getString(2));
objTab.setTipoProtese(result.getString(1));
objTab.setPrecoProtese(result.getDouble(3));
listaTab.add(objTab);
}
} catch (SQLException e) {
throw new DaoException(e);
} finally {
DbUtil.close(conn, statement, result);
}
return listaTab;
}

