Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Problema con objeto por parametro

Estas en el tema de Problema con objeto por parametro en el foro de Java en Foros del Web. Estoy haciendo una actividad a ver si alguien me puede ayudar. El programa es una calculadora con programacion orientada a eventos y el problema que ...
  #1 (permalink)  
Antiguo 30/05/2015, 14:53
 
Fecha de Ingreso: mayo-2015
Mensajes: 1
Antigüedad: 8 años, 10 meses
Puntos: 0
Pregunta Problema con objeto por parametro

Estoy haciendo una actividad a ver si alguien me puede ayudar.
El programa es una calculadora con programacion orientada a eventos y el problema que tengo es que hay que pasar de la clase principal (calculadora) a la encargada de procesar los eventos un objeto tipo"calculadora". Y no se muy bien la verdad de que manera enviarselo he probado de muchas maneras y me da error.
Aqui el codigo de la clase principal:
package calculadora;
import javax.swing.*;
/** Clase que representa una clase muy simple **/
public class Calculadora extends JFrame{
private static final long serialVersionUID = 1L;
private JTextField textoEntrada, textoSalida;
private JLabel etiquetaEntrada, etiquetaSalida;
private JButton botonCubo;

/** Constructor de la clase **/
public Calculadora(String titulo){
super(titulo);
inicializarComponentes();
registrarEscuchadores();
this.pack();
this.setVisible(true);
}

/** Inicializa los componentes gráficos de la clase **/
private void inicializarComponentes(){
Box box = Box.createHorizontalBox();
etiquetaEntrada=new JLabel(" Entrada:");
box.add(etiquetaEntrada);
textoEntrada=new JTextField(10);
textoEntrada.setText("0");
box.add(textoEntrada);
botonCubo=new JButton("Elevar al Cubo");
box.add(botonCubo);
etiquetaSalida=new JLabel(" Salida:");
box.add(etiquetaSalida);
textoSalida=new JTextField(10);
textoSalida.setEditable(false);
box.add(textoSalida);
this.add(box);

}

/** Devuelve el número entero que está escrito en el campo de texto
* de la entrada.
* En caso de error, devuelve 0 y muestra un mensaje de error. **/
public int leerEntrada(){
int num=0;
try{
Integer numInteger = Integer.valueOf(this.textoEntrada.getText());
num = numInteger.intValue();
}catch(Exception e){
JOptionPane.showMessageDialog(this,
"El número entero de entrada es incorrecto.",
"Error", JOptionPane.ERROR_MESSAGE);
}
return num;
}

/** Escribe el número en el campo de texto de la salida **/
public void escribirSalida(int num){
textoSalida.setText(""+num);
}
/** Este método registra los escuchadores de esta aplicación **/
public void registrarEscuchadores(){
//¡¡¡¡Esto es lo que no se como enviarlo a la clase que procesa los eventos!!!
Calculadora calculadora = null;
ActionListener al=new ClaseEscuchadora(calculadora);
//¡¡¡Esto es lo que no se como enviarlo a la clase que procesa los eventos!!
botonCubo.addActionListener(al);
botonRaiz.addActionListener(al);
botonBorrar.addActionListener(al);
}

public static void main (String args[]){
java.awt.EventQueue.invokeLater(new Runnable(){
public void run(){
new Calculadora("Calculadora");
}
});
}
}

Y esta la clase que procesa los eventos:
package calculadora;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;

public class ClaseEscuchadora implements ActionListener {

Calculadora calculadora=new Calculadora(null);
public ClaseEscuchadora(Calculadora Ccalculadora) {
this.calculadora=Ccalculadora;
}
@Override
public void actionPerformed(ActionEvent e) {
JButton bt=(JButton)e.getSource();
int entrada;
if (bt.getText().equalsIgnoreCase("Elevar al Cubo")){
//¡Aqui me da llos problemas al llamar al precedimiento de "calculadora"!!!
entrada = calculadora.leerEntrada();
int res = entrada * entrada * entrada;
calculadora.escribirSalida(res);
//¡¡¡Aqui me da llos problemas al llamar al precedimiento de "calculadora"!!!
}
if (bt.getText().equalsIgnoreCase("Raiz Cuadrada")){
//Incompleto
System.out.println("Raiz cuadrada");
}
if (bt.getText().equalsIgnoreCase("Borrar Campos")){
//Incompleto
System.out.println("Borrar");
}
}
}

Un saludo.

Etiquetas: clase, objeto, parametro, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:13.