Bom dia!
É o seguinte:
Tenho um jTable com 6 colunas, a coluna 0 é a coluna do código do Produto que é um jComboBox com os códigos do produtos a coluna 1 é a descrição do produto, então é o seguinte:
Quando eu selecionar no jComboBox um código do produto, eu pego este valor(int), e uso um método para pegar a descrição do produtoi pelo seu código, e esta descrição jogo na coluna 1, isso não estou conseguindo fazer:
criei o método para pegar a descrição"buscarDescricaoProduto(int codigo)" que está funcionando, a minha dúvida é o seguinte, como pego o valor da jComboBox que foi alterada, no meu método"atualizarTabela" consigo isso, mas dá erro, conforme a baixo, e essa String transformada pelo meu método, como faço para jogar na coluna 1 da Minha jTable, tem de ser automático, assim que selecionar o código do produto pela coluna0 automaticamente a coluna1 atualiza com a descrição.
public void CarregarTabela()
{
DefaultTableCellRenderer centralizado = new DefaultTableCellRenderer();
DefaultTableCellRenderer esquerda = new DefaultTableCellRenderer();
centralizado.setHorizontalAlignment(SwingConstants.CENTER);
esquerda.setHorizontalAlignment(SwingConstants.LEFT);
ComboBox.addItem("");
ComboBox2.addItem(produtos.listarProdutos(ComboBox));
col = jTOrcamento.getColumnModel().getColumn(0);
col.setCellEditor(new DefaultCellEditor (ComboBox));
col = jTOrcamento.getColumnModel().getColumn(1);
col = jTOrcamento.getColumnModel().getColumn(2);
col = jTOrcamento.getColumnModel().getColumn(3);
col = jTOrcamento.getColumnModel().getColumn(4);
col = jTOrcamento.getColumnModel().getColumn(5);
jTOrcamento.getColumnModel().getColumn(0).setHeaderValue("Código do Produto");
jTOrcamento.getColumnModel().getColumn(1).setHeaderValue("Descrição");
jTOrcamento.getColumnModel().getColumn(2).setHeaderValue("Quantidade");
jTOrcamento.getColumnModel().getColumn(3).setHeaderValue("Unidade");
jTOrcamento.getColumnModel().getColumn(4).setHeaderValue("Preço Unitário");
jTOrcamento.getColumnModel().getColumn(5).setHeaderValue("Valor Total");
jTOrcamento.getColumnModel().getColumn(0).setCellRenderer(centralizado);
jTOrcamento.getColumnModel().getColumn(1).setCellRenderer(centralizado);
jTOrcamento.getColumnModel().getColumn(2).setCellRenderer(centralizado);
jTOrcamento.getColumnModel().getColumn(3).setCellRenderer(centralizado);
jTOrcamento.getColumnModel().getColumn(4).setCellRenderer(centralizado);
jTOrcamento.getColumnModel().getColumn(5).setCellRenderer(centralizado);
this.setVisible(true);
}
public void atualizarTabela()
{
String txtDados = (String) ComboBox.getSelectedItem();
if(!txtDados.trim().equals(""))
{
String coluna = (String) jTOrcamento.getValueAt(jTOrcamento.getSelectedRow(), 0);
Object colunatransformada = produtos.buscarDescricaoProduto(Integer.parseInt(coluna));
}
}
public String buscarDescricaoProduto(int codigo){
String elem = "";
try {
Connection dbCon;
Class.forName("org.postgresql.Driver");
String a = "jdbc:postgresql://"localhost:5432/geff";
dbCon = DriverManager.getConnection(a, "postgres", "123");
java.sql.Statement s = dbCon.createStatement();
ResultSet rs = s.executeQuery("select pronome from produtos where procodigo= '"+ codigo + "';");
int x=0;
rs.next();
elem = rs.getString("pronome");
rs.close();
s.close();
dbCon.close();
} catch (ClassNotFoundException e) {
System.out.println("Erro de configuracao");
e.printStackTrace();
} catch (SQLException sqle) {
System.out.println("Erro de SQL");
sqle.printStackTrace();
}
return elem;
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at geff.control.ServOrçamento.jTOrcamentoFocusLost(ServOrçamento.java:485)
at geff.control.ServOrçamento.access$500(ServOrçamento.java:31)
at geff.control.ServOrçamento$4.focusLost(ServOrçamento.java:193)
at java.awt.AWTEventMulticaster.focusLost(AWTEventMulticaster.java:213)
at java.awt.Component.processFocusEvent(Component.java:5933)
at java.awt.Component.processEvent(Component.java:5797)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:882)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:555)
at java.awt.Component.dispatchEventImpl(Component.java:4285)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.KeyboardFocusManager.dispatchAndCatchException(KeyboardFocusManager.java:2555)
at java.awt.KeyboardFocusManager.processCurrentLightweightRequests(KeyboardFocusManager.java:2641)
at java.awt.KeyboardFocusManager.retargetFocusEvent(KeyboardFocusManager.java:2902)
at java.awt.Component.dispatchEventImpl(Component.java:4278)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)