Dúvida simples (não estou conseguindo)

2 respostas
M

Senhores forenses,

Estou tentando fazer um exercício que é o seguinte: Tenho duas caixas de texto para a entrada de dois números e uma terceira caixa que vai mostrar a soma desses números (não editável). Simplesmente não estou ocnseguindo fazer… Segue o código:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class dados extends JFrame
{
	JLabel L1,L2,L3;
	JTextField T1,T2,T3;
	JButton B1, B2;
	public dados()
	{
		setTitle("Pegar dados");
		setBounds(150,100,500,400);
		setResizable(false);
		L1 = new JLabel("Numero A");
		L1.setBounds(10,10,60,30);
		L2 = new JLabel("Numero B");
		L2.setBounds(10,30,60,30);
		L3 = new JLabel("A + B");
		L3.setBounds(10,50,60,30);

		T1 = new JTextField("");
		T1.setBounds(75,10,40,20);
		T2 = new JTextField("");
		T2.setBounds(75,30,40,20);
		T3 = new JTextField("");
		T3.setBounds(75,50,40,20);
		T3.setEnabled(false);

		B1 = new JButton("Calcula");
		B1.setBounds(10,80,80,20);
		B2 = new JButton("Sair");
		B2.setBounds(90,80,80,20);

		getContentPane().setLayout(null);
		getContentPane().add(L1);
		getContentPane().add(L2);
		getContentPane().add(L3);
		getContentPane().add(T1);
		getContentPane().add(T2);
		getContentPane().add(T3);
		getContentPane().add(B1);
		getContentPane().add(B2);

		setDefaultCloseOperation(EXIT_ON_CLOSE);

		//addWindowListener(new FechandoJanela());
	}
	public class calcula() //L48
	{
		String A = T1.getText();
		A = A.replace(',','.');
		a = Double.parseDouble(A);
		String B = T2.getText();
		B = B.replace(',','.');
		b = Double.parseDouble(B);
		Double s = a+b;
		T3.setText = s;
	}
	public static actionPerformed(ActionEvent e)
	{
		if (e.getSource()==B1)
		{
			dados.calcula();
		}
		else
		{
			JOptionPane.showMessagedialog(null,"Algo errado","Erro",-1);
			return;
		}
		if (e.getSource)==B2)
		{
			System.exit(0);
		}
	}
	public static void main (String arg[])
	{
		new dados().show();
	}
}//L79
Quando tento compilar, ocorre o seguinte erro:

dados.java:48: ´{´ expected

public calcula()

^

dados.java:79: ´}´ expected

}

^

2 errors

P.S.: Estou usando o j2sdk 1.4.2_09 e o Notepad

Agradeço antecipadamente

2 Respostas

_fs

Há alguns problemas no código:

public class calcula() //L48

Não pode declarar uma classe pública dentro de uma outra classe. Creio que o que deseja fazer neste ponto é:

public void calcula() //L48
if (e.getSource)==B2)

Pequeno erro de sintaxe, tem um parênteses faltando ali na chamada de getSource(). Correto seria:

if (e.getSource()==B2)
public static actionPerformed(ActionEvent e)

Faltou o tipo de retorno do método. Tire o “static” também, não faz sentido aqui e estava causando outro erro:

public void actionPerformed(ActionEvent e)
a = Double.parseDouble(A);
b = Double.parseDouble(B);

Faltou falar o que “a” e “b” são:

double a = Double.parseDouble(A);
double b = Double.parseDouble(B);
T3.setText = s;

Isso não fez muito sentido. setText( String s ) é um método da classe JTextField, não um atributo público. Para fazer o que deseja é assim:

T3.setText( String.valueOf( s ) );

O valueOf( s ) é para transformar o Double “s” em String.

dados.calcula();

Não é necessário fazer “dados.”, estava se confundindo por causa do “static” declarado no método. Basta fazer assim:

calcula();
JOptionPane.showMessagedialog(null,"Algo errado","Erro",-1);

Pequeno erro de digitação, faltou o “D” maiúsculo em “dialog”

JOptionPane.showMessageDialog(null,"Algo errado","Erro",-1);

Sugestões:

  • não inicie os estudos sobre Swing ainda. Recomendo que faça mais programas apenas em linha de comando por hora.
  • escreva os programas compilando com mais frequência, assim pode resolver um problema de cada vez sem ser atropelado por vários simultâneos.

Está indo bem, persistência :smiley:

LPJava

mmeireles:
Senhores forenses,

Estou tentando fazer um exercício que é o seguinte: Tenho duas caixas de texto para a entrada de dois números e uma terceira caixa que vai mostrar a soma desses números (não editável). Simplesmente não estou ocnseguindo fazer… Segue o código:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class dados extends JFrame
{
	JLabel L1,L2,L3;
	JTextField T1,T2,T3;
	JButton B1, B2;
	public dados()
	{
		setTitle("Pegar dados");
		setBounds(150,100,500,400);
		setResizable(false);
		L1 = new JLabel("Numero A");
		L1.setBounds(10,10,60,30);
		L2 = new JLabel("Numero B");
		L2.setBounds(10,30,60,30);
		L3 = new JLabel("A + B");
		L3.setBounds(10,50,60,30);

		T1 = new JTextField("");
		T1.setBounds(75,10,40,20);
		T2 = new JTextField("");
		T2.setBounds(75,30,40,20);
		T3 = new JTextField("");
		T3.setBounds(75,50,40,20);
		T3.setEnabled(false);

		B1 = new JButton("Calcula");
		B1.setBounds(10,80,80,20);
		B2 = new JButton("Sair");
		B2.setBounds(90,80,80,20);

		getContentPane().setLayout(null);
		getContentPane().add(L1);
		getContentPane().add(L2);
		getContentPane().add(L3);
		getContentPane().add(T1);
		getContentPane().add(T2);
		getContentPane().add(T3);
		getContentPane().add(B1);
		getContentPane().add(B2);

		setDefaultCloseOperation(EXIT_ON_CLOSE);

		//addWindowListener(new FechandoJanela());
	}
	public class calcula() //L48
	{
		String A = T1.getText();
		A = A.replace(',','.');
		a = Double.parseDouble(A);
		String B = T2.getText();
		B = B.replace(',','.');
		b = Double.parseDouble(B);
		Double s = a+b;
		T3.setText = s;
	}
	public static actionPerformed(ActionEvent e)
	{
		if (e.getSource()==B1)
		{
			dados.calcula();
		}
		else
		{
			JOptionPane.showMessagedialog(null,"Algo errado","Erro",-1);
			return;
		}
		if (e.getSource)==B2)
		{
			System.exit(0);
		}
	}
	public static void main (String arg[])
	{
		new dados().show();
	}
}//L79
Quando tento compilar, ocorre o seguinte erro:

dados.java:48: ´{´ expected

public calcula()

^

dados.java:79: ´}´ expected

}

^

2 errors

P.S.: Estou usando o j2sdk 1.4.2_09 e o Notepad

Agradeço antecipadamente

ae acredito o q tem em anexo ajude a vc! um programa semelhantes aos erros que o Lipe falou!!
Versao 1.5!! é um sistema bancario que calcula valores digitados pelo usuarios e mostra um saldo em tela e se houve movimentação na conta!!

Criado 4 de maio de 2006
Ultima resposta 4 de mai. de 2006
Respostas 2
Participantes 3