Foros del Web » Programación » Java »

ejecutar un metodo en java..?

Estas en el tema de ejecutar un metodo en java..? en el foro de Java en Foros del Web. Hola alguien sabe como llamar un evento y ejecutarlo desde un boton? Estoy tratando de hacer algo tan simple como: tengo mi clase alumno con ...
  #1 (permalink)  
Antiguo 02/03/2011, 14:14
Avatar de yuo2  
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 245
Antigüedad: 5 años, 11 meses
Puntos: 21
ejecutar un metodo en java..?

Hola alguien sabe como llamar un evento y ejecutarlo desde un boton?
Estoy tratando de hacer algo tan simple como:
tengo mi clase alumno con sus atributos y un metodo llamado Nota, ahora ese evento lo llamo en mi falumno q vendria hacer mi formulario.

Bueno nose si esta bien lo q hago, a ver si alguien me corrije..


falumno (formulario alumno) aqui hago mi interface en swing.. la cual quiero ejecutar en un boton el metodo Nota (de la clase alumnos) q esta en otro archivo java

falumno.java
Código Javascript:
Ver original
  1. package src;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import src.alumno.Nota;
  5.  
  6.  
  7. public class falumno {
  8.  
  9.     private JFrame falu;
  10.     private JButton btcal;
  11.     private JTextField txt1, txt2, txt3;
  12.  
  13.     public falumno(){
  14.         falu = new JFrame();
  15.         falu.setSize(400,300);
  16.         falu.setLocation(300,300);
  17.         falu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18.         falu.getContentPane().setLayout(null);
  19.        
  20.        
  21.         btcal = new JButton("Calcula");
  22.         btcal.setSize(90,30);
  23.         btcal.setLocation(150,200);
  24.        
  25.        
  26.         txt1 = new JTextField();
  27.         txt1.setLocation(150,50);
  28.         txt1.setSize(90,30);
  29.                    
  30.         txt2 = new JTextField();
  31.         txt2.setLocation(150,90);
  32.         txt2.setSize(90,30);
  33.        
  34.         txt3 = new JTextField();
  35.         txt3.setLocation(150,150);
  36.         txt3.setSize(90,30);
  37.        
  38.         alumno mialumno = new alumno();
  39.        
  40.         mialumno.alu_nota1 = txt1.getText();
  41.         mialumno.alu_nota2 = txt2.getText();
  42.         txt3.setText("");
  43.        
  44.         Nota prome = new Nota(txt3);       
  45.         btcal.addActionListener(prome);
  46.    
  47.        
  48.        
  49.         falu.getContentPane().add(txt1);
  50.         falu.getContentPane().add(txt2);
  51.         falu.getContentPane().add(txt3);
  52.         falu.getContentPane().add(btcal);
  53.         falu.setVisible(true);
  54.     }
  55.    
  56.     public static void main(String[] args){
  57.         falumno ventana = new falumno();
  58.        
  59.        
  60.     }
  61.  
  62. }


Clase Alumno tiene algunos atributos y un metodo Nota.

alumno.java
Código Javascript:
Ver original
  1. package src;
  2.  
  3. import java.awt.event.*;
  4.  
  5. public class alumno {
  6.     public String alu_cod;
  7.     public String alu_nomb;
  8.     public String alu_ape;
  9.     public String alu_nota1;
  10.     public String alu_nota2;
  11.     public Integer alu_prom;
  12.    
  13.    
  14.     class Nota implements ActionListener{
  15.         public void actionPerformed (ActionEvent evento){
  16.             alu_prom = Integer.parseInt(alu_nota1)+ Integer.parseInt(alu_nota2);
  17.             System.out.println(alu_prom);
  18.         }  
  19.     }
  20.    
  21. }
  #2 (permalink)  
Antiguo 02/03/2011, 14:38
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 3 años, 9 meses
Puntos: 20
Respuesta: ejecutar un metodo en java..?

hola

a lo que veo tienes una Clase donde implementas el evento del boton

para llamar a este este evento, tienes que hacer lo siguiente

Código java:
Ver original
  1. btcal.addActionListener(new Nota());

saludos
  #3 (permalink)  
Antiguo 02/03/2011, 15:07
Avatar de yuo2  
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 245
Antigüedad: 5 años, 11 meses
Puntos: 21
Respuesta: ejecutar un metodo en java..?

borre la linea de codigo q tenia esto:
Nota prome = new Nota(txt3);

y puse eso q dices y me marca rojo y sale este mensaje:

Código Javascript:
Ver original
  1. btcal.addActionListener(new Nota());

No enclosing instance of type alumno is accessible. Must qualify the allocation with an enclosing instance of type alumno (e.g. x.new A() where x is an instance of alumno).



y nada =/ .. no resuelvo aun q esta mal..



..
  #4 (permalink)  
Antiguo 02/03/2011, 15:35
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 3 años, 9 meses
Puntos: 20
Respuesta: ejecutar un metodo en java..?

tienes que tener en cuenta algo

has creado una clase anidada, es decir una clase dentro de otra clase

y en tu clase Nota. no tienes ningún constructor con un parametro de entrada, es decir no existe

Código java:
Ver original
  1. class Nota{
  2. Nota(String txt3){}
  3. }

por lo tanto, la instancia del objeto que estas realizando no sirve

Código java:
Ver original
  1. Nota prome = new Nota(txt3);


Lo primero que tienes que hacer es
instanciar la primera clase que es Alumno,

Código java:
Ver original
  1. Alumno alu=new Alumno();

apartir de este objeto creado, recien puedes instanciar la segunda clase anidada

Código java:
Ver original
  1. Nota nota=alu.new Nota();

y recien puedes adicionar el evento a tu boton

Código java:
Ver original
  1. btcal.addActionListener(nota);


saludos
  #5 (permalink)  
Antiguo 02/03/2011, 16:01
Avatar de yuo2  
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 245
Antigüedad: 5 años, 11 meses
Puntos: 21
Busqueda Respuesta: ejecutar un metodo en java..?

ok ya veo q' esta mejor... asi lo puse:

Código Javascript:
Ver original
  1. ...
  2. Nota minota = mialumno.new Nota();
  3. btcal.addActionListener(minota);
  4. ...

ahora lei q dijiste q me faltaba esto :

Código Javascript:
Ver original
  1. class Nota{
  2.    Nota(String txt3){}
  3. }

osea eso lo pongo en mi clase alumno, aqui dentro, asi??

Código Javascript:
Ver original
  1. class Nota implements ActionListener{
  2. Nota(String txt3); /* ACA IRIA ESO ?*/
  3. public void actionPerformed (ActionEvent evento){
  4.      alu_prom = Integer.parseInt(alu_nota1)+ Integer.parseInt(alu_nota2);
  5.      System.out.println(alu_prom);
  6.      } 
  7. }

Oye otra pregunta... como veras hay hago una operacion alu_prom la cual hace una suma... y eso en mi JTextFiel iria asi??

txt3.setText(mialumno.alu_prom);

o

txt3.setText("")=mialumno.alu_prom;
..

Gracias... sorry q te haga estas preguntas pero esq, mayormente he visto ejemplos en modo consola y pocos en modo swing (osea usando una interface) y a la vez aplicando clases y metodos
  #6 (permalink)  
Antiguo 02/03/2011, 18:37
Avatar de yuo2  
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 245
Antigüedad: 5 años, 11 meses
Puntos: 21
Respuesta: ejecutar un metodo en java..?

Q' falta??

No veo ningun error (uso eclipse) en codigo... pero no me suma. Me estara faltando algo ??

Porfa nesecito hacer este ejemplo sencillo de suma pero usando clases y metodos. Bueno aqui mi codigo ya correjido pero no me lanza el resultado.

alumno.java
Código Javascript:
Ver original
  1. package src;
  2.  
  3. import java.awt.event.*;
  4.  
  5. public class alumno {
  6.     public String alu_cod;
  7.     public String alu_nomb;
  8.     public String alu_ape;
  9.     public String alu_nota1;
  10.     public String alu_nota2;
  11.     public Integer alu_prom;   
  12.  
  13.      
  14.     class Nota implements ActionListener{
  15.  
  16.         public void actionPerformed (ActionEvent evento){
  17.             alu_prom = Integer.parseInt(alu_nota1)+ Integer.parseInt(alu_nota2);
  18.            
  19.             //System.out.println(alu_prom);            
  20.             }  
  21.         }
  22.    
  23. }

falumno.java

Código Javascript:
Ver original
  1. package src;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import src.alumno.Nota;
  5.  
  6.  
  7. public class falumno {
  8.  
  9.     private JFrame falu;
  10.     private JButton btcal;
  11.     private JTextField txt1, txt2, txt3;
  12.  
  13.     public falumno(){
  14.         falu = new JFrame();
  15.         falu.setSize(400,300);
  16.         falu.setLocation(300,300);
  17.         falu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18.         falu.getContentPane().setLayout(null);
  19.        
  20.        
  21.         btcal = new JButton("Calcula");
  22.         btcal.setSize(90,30);
  23.         btcal.setLocation(150,200);
  24.        
  25.        
  26.         txt1 = new JTextField();
  27.         txt1.setLocation(150,50);
  28.         txt1.setSize(90,30);
  29.                    
  30.         txt2 = new JTextField();
  31.         txt2.setLocation(150,90);
  32.         txt2.setSize(90,30);
  33.        
  34.         txt3 = new JTextField();
  35.         txt3.setLocation(150,150);
  36.         txt3.setSize(90,30);
  37.        
  38.         alumno mialumno = new alumno();
  39.        
  40.         mialumno.alu_nota1 = txt1.getText();
  41.         mialumno.alu_nota2 = txt2.getText();
  42.        
  43.        
  44.         Nota minota = mialumno.new Nota();
  45.         btcal.addActionListener(minota);
  46.         txt3.setText(String.valueOf(mialumno.alu_prom));
  47.        
  48.        
  49.         falu.getContentPane().add(txt1);
  50.         falu.getContentPane().add(txt2);
  51.         falu.getContentPane().add(txt3);
  52.         falu.getContentPane().add(btcal);
  53.         falu.setVisible(true);
  54.     }
  55.    
  56.     public static void main(String[] args){
  57.         falumno ventana = new falumno();   
  58.     }
  59.  
  60. }

Etiquetas: ejecutar, metodo
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 16:48.
SEO by vBSEO 3.3.2