Ajuda Caixa de Dialogo

Gostaria de uma ajuda para acrescentar uma caixa de diálogo para o usuário digitar o valor a ser calculado no seguinte arquivo fonte:

import javax.swing.*;

public class Juros
{
	public static void main(String[] args)
	{
		final int STARTRATE = 10;
		final int NRATES = 6;
		final int NYEARS = 10;
		
		double[] interestRate = new double[NRATES];
		for (int j = 0; j < interestRate.length; j++)
			interestRate[j] = (STARTRATE + j) / 100.0;

		double[][] balances = new double[NYEARS][NRATES];

		for (int j = 0; j < balances[0].length; j++)
			balances[0][j] = j;
				String quantia = JOptionPane.showInputDialog("Qual o valor da aplicação a ser calculado?");
				double valor = Double.parseDouble(quantia);
				balances[0][j] = valor;		
					
		for (int i = 1; i < balances.length; i++)
		{
			for (int j = 0; j < balances[i].length; j++)
			{

				double oldBalance = balances[i - 1][j];

				double interest = oldBalance * interestRate[j];

				balances [i][j] = oldBalance + interest;
			}
		}

		for (int j = 0; j < interestRate.length; j++)
			System.out.printf("%9.0f%%", 100 * interestRate[j]);

		System.out.println();

		for (double[] row : balances)
		{

			for (double b : row)
				System.out.printf("%,10.2f ", + valor + b);

			System.out.println();
		}
	}
}

Mas esta apresentando o seguinte erro:

C:\Java\Livro>javac Juros.java
Juros.java:21: cannot find symbol
symbol  : variable j
location: class Juros
                                balances[0][j] = valor;
                                            ^
1 error

Alguém poderia me ajudar com essa dúvida cruel???

Use sempre chaves, quando você não usa chaves, o compilador entende que somente a próxima instrução após o if,while ou for será interpretada…

for (int j = 0; j < balances[0].length; j++)  {
balances[0][j] = j; 
String quantia = JOptionPane.showInputDialog("Qual o valor da aplicação a ser calculado?"); 
double valor = Double.parseDouble(quantia); 
balances[0][j] = valor; 
}

Hum, aqui o código compilou corretamente. Tem certeza que este é o fonte que tentou compilar?

dica: quando for postar código, coloque-o entre as tags [ code]seucodigo[ /code], assim ele fica formatado.

Valew Thiago e Lipe, mas o erro esta me perseguindo… hehehe

Thiago, acrescentei as { } e realmente o erro desapareceu mas surgiu outro:

C:\Java\Livro>javac Juros.java
Juros.java:46: cannot find symbol
symbol  : variable valor
location: class Juros
                                System.out.printf("%,10.2f ", + valor +  b);
                                                                ^
1 error

Lipe, se o seu compilou ta muito estranho, eu estou utilizando o JDK 1.5, será que pode ser por isso???

cannot find symbol

Sempre que aparecer esse erro certifique-se de que você declarou a variável. No seu caso você declarou a variável valor dentro do laço for, ou seja ela só vai valer dentro do laço, quando o for terminar, a variável não irá mais exisitir, para sanar o problema faça o seguinte: antes de começar o laço declare a variável valor e atribua a ela o valor 0.0.

Argh, o Eclipse estava com algum erro bizarro e não estava compilando haha

Thiago está correto.

Valew Thiago e Filipe.

Mas meu, iniciante se ferra e muito nessa parada, não adianta eu dar um passo maior que a minha perna não, tenho que fazer coisas mais simples mesmo, pq pro inclível que pareça apareceu mais um erro.

C:\Java\Livro>javac Juros.java
Juros.java:27: valor is already defined in main(java.lang.String[])
                                double valor = Double.parseDouble(quantia);
                                       ^
1 error

Mas desencana, em um futuro próximo eu chego lah.

[quote=Fabio Verdi]Valew Thiago e Filipe.

Mas meu, iniciante se ferra e muito nessa parada, não adianta eu dar um passo maior que a minha perna não, tenho que fazer coisas mais simples mesmo, pq pro inclível que pareça apareceu mais um erro.

C:\Java\Livro>javac Juros.java
Juros.java:27: valor is already defined in main(java.lang.String[])
                                double valor = Double.parseDouble(quantia);
                                       ^
1 error

Mas desencana, em um futuro próximo eu chego lah.[/quote]

ae poe o codigo atualizado ai!!

Ae Camilo, valeu tbm pela preocupação. Segue abaixo o código atualizado.

import javax.swing.*;

public class Juros
{
	public static void main(String[] args)
	{
		final int STARTRATE = 10;
		final int NRATES = 6;
		final int NYEARS = 10;
		double valor = 0;
		
		double[] interestRate = new double[NRATES];
		for (int j = 0; j < interestRate.length; j++)
			interestRate[j] = (STARTRATE + j) / 100.0;

		double[][] balances = new double[NYEARS][NRATES];

				

		for (int j = 0; j < balances[0].length; j++)
		
		
 
		{
			balances[0][j] = j;
				String quantia = JOptionPane.showInputDialog("Qual o valor da aplicação a ser calculado?");
				double valor = Double.parseDouble(quantia);
				balances[0][j] = valor;
		}
			
		for (int i = 1; i < balances.length; i++)
		{
			for (int j = 0; j < balances[i].length; j++)
			{

				double oldBalance = balances[i - 1][j];

				double interest = oldBalance * interestRate[j];

				balances [i][j] = oldBalance + interest;
			}
		}

		for (int j = 0; j < interestRate.length; j++)
			System.out.printf("%9.0f%%", 100 * interestRate[j]);

		System.out.println();

		for (double[] row : balances)
		{

			for (double b : row)
				System.out.printf("%,10.2f ", + valor + b);

			System.out.println();
		}
	}
}

Cara, você está usando duas variáveis com o mesmo nome:

 	public static void main(String[] args)
 	{
 		final int STARTRATE = 10;
 		final int NRATES = 6;
 		final int NYEARS = 10;
---->        double valor = 0;
.
.
.
 		for (int j = 0; j < balances[0].length; j++) {
 			balances[0][j] = j;
			String quantia = JOptionPane.showInputDialog("Qual o valor da aplicação a ser calculado?");
---->                double valor = Double.parseDouble(quantia);

você tem que se ligar nesses detalhes, dê uma olhada nos fundamentos da linguagem java senão difícilmente você vai sair do lugar, faça a seguinte substituição abaixo

troque esta linha: 
double valor = Double.parseDouble(quantia);

por esta:
double valorDigitado = Double.parseDouble(quantia);

Valew Thiago, e pelo que vc pode perceber sou iniciante nato na parada.

Vc poderia indicar uma escola boa aqui em São Paulo??? (Tirando a Sun que eh muito caro e ainda não estou programando profissionalmente pra ganhar a grana que vo6 ganham… hehehe).

Abraço