Olá, eu estou tentando pegar o item selecionado da minha tabela e setar em uma textField, eu até consigo pegar os dados da linha selecionada, mas na hora de setar que ta sendo o problema, pois simplesmente não seta os valores… Até agora este processo é definido por 3 classes, a tela de vendas onde ficam os campos que quero preencher, a classe de consulta onde fica o frame para realizar as buscar e a classe PreencheCamposTelaDeVenda que fica responsável por pegar o index da tabela e depois atribuir os valores a variáveis estáticas para então setar nos textFields correspondentes, porem esta dando erro dizendo que está nulo mesmo eu tendo “tratado” isso… Alguém poderia me ajudar com isso? artigos, exemplos e dicas, não entendi muito bem como funciona essa parte e nem qual a melhor forma de se fazer isso. Segue minha tentativa abaixo →
Classe que faz a parte de pegar a linha selecionada e seus valores
public class PreencheCamposTelaDeVenda {
public static String prodCod;
public static BigDecimal unitValue;
public static void preencheCamposProduto(JTable table) {
int indexRow = table.getSelectedRow();
Produto produto = ProdutoTableModel.get(indexRow);
prodCod = produto.getProdCod();
unitValue = produto.getPrecoLista();
}
}
Este é o componente que fica na classe da tela de vendas, que eu quero setar o valor vindo da table
private JTextField getTextFieldCodProd() {
if (textFieldCodProd == null) {
textFieldCodProd = new JTextField();
textFieldCodProd.setText(
(PreencheCamposTelaDeVenda.prodCod == null
|| PreencheCamposTelaDeVenda.prodCod.isEmpty()
|| PreencheCamposTelaDeVenda.prodCod.equals(""))
? ""
: PreencheCamposTelaDeVenda.prodCod);
textFieldCodProd.setFont(new Font("Times New Roman", Font.PLAIN, 22));
textFieldCodProd.setColumns(10);
textFieldCodProd.requestFocus();
}
return textFieldCodProd;
}
Esta é a JTable que eu pego os valores
private JTable getTableProduto() {
if (tableProduto == null) {
tableProduto = new JTable();
tableProduto.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
frameVenda = new JFrameTelaDeVendas();
PreencheCamposTelaDeVenda.preencheCamposProduto(tableProduto);
dispose();
}
});
tableProduto.setAutoCreateRowSorter(true);
tableProduto.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tableProduto.setModel(new ProdutoTableModel(new ArrayList<Produto>()));
tableProduto.getColumnModel().getColumn(0).setPreferredWidth(20);
tableProduto.getColumnModel().getColumn(1).setPreferredWidth(150);
tableProduto.getColumnModel().getColumn(2).setPreferredWidth(40);
tableProduto.getColumnModel().getColumn(3).setPreferredWidth(10);
new ConsultasSql(tableProduto,Produto.class,"Produto","prodCod, prodRef, prodDesc, precoLista",comboBoxProdSearch,textFieldProdSearch);
}
return tableProduto;
}
Desde já agradeço a atenção!