Efetuar soma de campos dinamicamente

Tudo certo? Minha dúvida acredito que seja bastante complexa: Tenho 2 campos, 1 com valor de Quantidade e o outro seria o preço (Valor, como vai aparecer). A ideia é fazer quantidade vezes valor, salvar isso e DINAMICAMENTE ir somando e exibindo em uma textbox ou label. É possível fazer isso? Segue trecho do código que eu estou tentando e não estou conseguindo fazer funcionar:

public void actionPerformed(ActionEvent e) {
				
				valorT = Double.parseDouble(txtValor.getText());
				quanT = Integer.parseInt(txtQuantidade.getText());
				

				subTotal = valorT * quanT;
				txtSubTotal.setText(String.valueOf(subTotal));
				
				double temp = Double.parseDouble(txtSubTotal.getText());
				total = total + temp;
				
				
				lblTotal.setText(String.valueOf(total));
				
				
				txtValor.setText(" ");
				txtQuantidade.setText(" ");
				
			}

e o erro depois de cilcar no Salvar já na segunda vez:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: " 2"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
	at java.base/java.lang.Integer.parseInt(Integer.java:654)
	at java.base/java.lang.Integer.parseInt(Integer.java:786)
	at Mercado.Mercado$2.actionPerformed(Mercado.java:87)

Seria o caso de usar um array dinâmico? Outra coisa, para “parar” eu pensei em colocar dentro de um while e quando se inserisse o valor de “-1” no campo da Quantidade ele encerraria, mas não funcionoiu também. Desde já obrigado quem puder ajudar.
OBS.: coloquei tudo dentro de um JFrame para facilitar a entrada de dados.

É que " 2" não pode ser convertido para um número inteiro.

Perceba que tem um espaço em branco antes do dígito 2.

Faça um trim da String antes de fazer o parseInt.

Mano… era isso mesmo. Eu do um setText(" ") (com um espaço). Tirei o espaço… Buuum!! funfou. Obrigado!