Um erro em ItemListener

3 respostas
D

Estou começando em Java agora. Está dando um erro que eu não sei por q. Se alguem puder me ajudar.
Vou passar o código e o erro:

O erro é o seguinte:
Calculosl.java is not abstract and does not override abstract method itemStantChanged(java.awt.event.ItemEvent) in java.awt.event.ItemEvent .ItemListener

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Calculos1 extends JFrame implements ItemListener{

	JLabel lbl1 = new JLabel("Número 1");
	JLabel lbl2 = new JLabel("Número 2");
	JLabel lbl3 = new JLabel("Resultado");

	JTextField tfd1 = new JTextField();
	JTextField tfd2 = new JTextField();
	JTextField tfd3 = new JTextField();

	JRadioButton[] rbtn = new JRadioButton[4];

	ButtonGroup btnggrupo = new ButtonGroup();

	//Método construtor

	Calculos1(){

		super("Exemplo de Interface Swing");
		setBounds(150, 200, 300, 120);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel painel = new JPanel();
		painel.setLayout(new GridLayout(5, 2));
		painel.add(lbl1); painel.add(tfd1);
		painel.add(lbl2); painel.add(tfd2);
		painel.add(lbl3); painel.add(tfd3);

		rbtn[0] = new JRadioButton("Somar");
		rbtn[1] = new JRadioButton("Subtrair");
		rbtn[2] = new JRadioButton("Multiplicar");
		rbtn[3] = new JRadioButton("Dividir");

		for(int i = 0; i <  rbtn.length; i++){

			btnggrupo.add(rbtn[i]);
			painel.add(rbtn[i]);
			rbtn[i].addItemListener(this);

		}
		
		setContentPane(painel);
		show();

	}

	public static void main(String args[]){

		Calculos1 calculo = new Calculos1();

	}

	public void itemStateCharged(ItemEvent e){

		if(e.getSource() == rbtn[0]){

			float resultado = Float.parseFloat(tfd1.getText()) + Float.parseFloat(tfd2.getText());
			tfd3.setText(String.valueOf(resultado));

		}

		if(e.getSource() == rbtn[1]){

			float resultado = Float.parseFloat(tfd1.getText()) - Float.parseFloat(tfd2.getText());
			tfd3.setText(String.valueOf(resultado));

		}

		if(e.getSource() == rbtn[2]){

			float resultado =  Float.parseFloat(tfd1.getText()) * Float.parseFloat(tfd2.getText());
			tfd3.setText(String.valueOf(resultado));

		}

		if(e.getSource() == rbtn[3]){

			float resultado = Float.parseFloat(tfd1.getText()) / Float.parseFloat(tfd2.getText());
			tfd3.setText(String.valueOf(resultado));

		}

		

	}

}

3 Respostas

C

Quando vc implementa uma interface vc deve dar implementações válidas para os métodos que compôem essa interface, no seu caso falta vc criar um método com a mesma assintaura do itemStantChanged, essa implementação só precisa ter {}, não precisa ter nenhum lógica dentro como abaixo:

public void itemStantChanged(java.awt.event.ItemEvent){

}
T

Sem contar que “itemStateChanged” é diferente de “itemStateCharged”
(change = alterar, mudar; charge = carregar). Cuidado com a sua ortografia… você escreveu “charged”.

D

Muito obrigado cecalda, valeu mesmo pela ajuda. Obrigado pelo toque thingol. Mto obrigado mesmo.

Criado 28 de maio de 2005
Ultima resposta 28 de mai. de 2005
Respostas 3
Participantes 3