Problema com arrays no JOpionPane

Estou com o problema na inicialização dos seguintes arrays

String[] produto = new String[JOptionPane.showInputDialog(“Produto:”)];
Double[] preco = new Double[Double.parseDouble(JOptionPane.showInputDialog(“Preço:”))];

aparece a mensagem Type mismatch: cannot convert from String to int

Se alguém puder me ajudar, gostaria de entender o que estou fazendo de errado?

import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Exemplo3 {

	public static void main(String[] args) {
		JTextArea area = new JTextArea(10, 20);
		area.setEditable(false);
		JScrollPane barra = new JScrollPane(area);
		
		// as duas linhas a seguir apresentam problemas String[]... e Double[]....
		String[] produto = new String[JOptionPane.showInputDialog("Produto:")];
		Double[] preco = new Double[Double.parseDouble(JOptionPane.showInputDialog("Preço:"))];
		

		criaVetor(produto, preco);
		listaVetor(produto, preco, area);

		JOptionPane.showMessageDialog(null, barra);
		System.exit(0);
	}

	// método para criar os vetores
	public static void criaVetor(String[] produto, Double[] preco) {
		for (int i = 0; i < produto.length; i++) {
			produto[i] = JOptionPane.showInputDialog("Produto: ");
		}

		for (int i = 0; i < preco.length; i++) {
			preco[i] = Double.parseDouble(JOptionPane
					.showInputDialog("Preço: "));
		}
	}

	// método para listar os vetores
	public static void listaVetor(String[] produto, Double[] preco, JTextArea ar) {
		for (int i = 0; i < produto.length; i++) {
			ar.append("Produto: " + produto[i]);
		}

		for (int i = 0; i < preco.length; i++) {
			ar.append("Preço: " + preco[i]);
		}

		for (int i = 0; i < preco.length; i++) {
			ar.append("Preço com desconto de 5%: " + precDesc(preco[i]));
		}

	}

	// método desconto recebe o preço como parâmetro e retorna o valor com o
	// desconto de 5%
	public static double precDesc(double preco) {
		return (preco * 0.95);
		
	}

}