Setar valores vindos de JTable

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!

Porque tem tanto atributo estático?
Porque o ProdutoTableModel tem um método estático get?
Tem certeza de que você sabe o que é um membro estático?

Foi uma ideia q eu tive pra deixar mais prático de certa forma, sem precisar instanciar a classe toda vez q for usar, já q vou ter q usar essa classe em outras 4 tabelas , e a questão dos valores estáticos é pq eu quero q eles fiquem salvos até o próximo ser chamado, pra mim fez sentido na hora, mas se tu tiver um sugestão melhor eu aceitaria também