Como usar varios escuchadores en el mismo Frame?

Responder
Mensaje
Autor
weezyfbaby
Mensajes: 2
Registrado: 17/11/2013 5:10 pm

Como usar varios escuchadores en el mismo Frame?

#1 Mensaje por weezyfbaby » 17/11/2013 5:13 pm

uen dia colegas,tenia esta duda.

Estoy ya dentro del tema de visual en java,ahora me piden hacer un programa que de un JCombobox despliegue una lista de películas predefinidas y llene los campos genero,duración y clasificación que son JTextFields hasta ahí tengo todo bien.

Lo he hecho con el ItemListener.

Pero pero tengo 2 botones uno llamado limpiar y otro salir,ya se como programarlos,el problema es que no se como implementarlo porque necesito usar ActionListener para los botones.

Como puedo usar ambos escuchadores en el Frame el problema viene cuando hago el frame a mi me enseñaron a declararlo así

class Peliculas extends JFrame implements ItemListener{
.
.
.

public static void main(String[] args) {

Peliculas P=new Peliculas();

}
}

Realmente solo necesito saber como puedo hacer para que pueda utilizar el ActionListener porque la programación de los botones seria así:

public void actionPerformed(ActionEvent evt)
{
Object presionado=evt.getSource();
if(presionado==cmdlimpiar)
limpiar();
if(presionado==cmdsalir)
System.exit(0);
}

Código: Seleccionar todo

/*
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
class Peliculas extends JFrame implements ItemListener {
	
		//Icono
		ImageIcon icono = new ImageIcon("1.JPEG");
		JLabel imagen = new JLabel();
		//Labels
		JLabel lbltitulo=new JLabel("CATALOGO DE PELICULAS: ");
		JLabel lblgenero=new JLabel("GENERO: ");
		JLabel lblduracion=new JLabel("DURACION: ");
		JLabel lblclasificacion=new JLabel("CLASIFICACION: ");
		JLabel lblformato=new JLabel("FORMATO");
		//JTextFields
		JTextField jtxtgenero=new JTextField();
		JTextField jtxtduracion=new JTextField();
		JTextField jtxtclasificacion=new JTextField();
		
		//Combobox
		String[] code = { "Batman The Dark Knight Rises", "Transformers The Dark Side Of The Moon", "Fast & Furious 6" };
		JComboBox combo=new JComboBox(code);
		
		//Checkbox
		JCheckBox chkopcion2D = new JCheckBox("2D",false);
 		JCheckBox chkopcion3D = new JCheckBox("3D",false);
 		JCheckBox chkopcion4D = new JCheckBox("4D",false);
 		JCheckBox chkopcionIMAX = new JCheckBox("IMAX",false);
		
		//JButtons
		JButton cmdlimpiar=new JButton("LIMPIAR");
		JButton cmdsalir=new JButton("SALIR");
		
		//Constructor
		public Peliculas(){
			
		super("CATALOGO DE PELICULAS");
		this.setBounds(0,0,800,600);
		this.setLocationRelativeTo(null);
	
		//COMBOBOX
		combo.setBounds(40,200,180,19);
		//Labels Posicion y Tamaño
		lbltitulo.setBounds(300,160,180,19);
		lblgenero.setBounds(300,200,180,19);
		lblduracion.setBounds(300,220,180,19);
		lblclasificacion.setBounds(300,240,180,19);
		lblformato.setBounds(350,270,189,19);
		//Labels Posicion y Tamaño
		jtxtgenero.setBounds(400,200,180,19);
		jtxtduracion.setBounds(400,220,180,19);
		jtxtclasificacion.setBounds(400,240,180,19);
		
		//Chechkbox
		chkopcion2D.setBounds(300,300,180,19);
		chkopcion3D.setBounds(300,320,180,19);
		chkopcion4D.setBounds(300,340,180,19);	
		chkopcionIMAX.setBounds(400,300,300,25);
			
		//Labels Posicion y Tamaño
		cmdlimpiar.setBounds(300,400,90,19);
		cmdsalir.setBounds(400,400,90,19);
	
		//Imagen
		imagen.setBounds(100,0,600,145);
		
		setLayout(null);
		ImageIcon icono2 = new ImageIcon(icono.getImage().getScaledInstance(1, 11,Image.SCALE_DEFAULT));
		imagen.setIcon(icono);
		this.add(imagen);
		
		this.add(lbltitulo);
		this.add(lblgenero);
		this.add(lblduracion);
		this.add(lblclasificacion);
		this.add(lblformato);
		this.add(jtxtgenero);
		this.add(jtxtduracion);
		this.add(jtxtclasificacion);
		
		add(combo);/*
		combo.addItem("Batman The Dark Knight Rises");
		combo.addItem("Transformers The Dark Side Of The Moon");
		combo.addItem("Fast & Furious 6");
		combo.addActionListener(this);*/
	
		this.add(cmdlimpiar);
		this.add(cmdsalir);
		
		this.add(chkopcion2D);
		this.add(chkopcion3D);
		this.add(chkopcion4D);
		this.add(chkopcionIMAX);
		
		combo.addItemListener(this);
		cmdsalir.addItemListener(this);
		this.setVisible(true);
	}
public void itemStateChanged(ItemEvent e){
	
    if (combo.getSelectedItem().equals("Batman The Dark Knight Rises")){
            jtxtgenero.setText("Accion");
            jtxtduracion.setText("165 min");
			jtxtclasificacion.setText("B");
		}
	else 	
	if (combo.getSelectedItem().equals("Transformers The Dark Side Of The Moon")){
		    jtxtgenero.setText("Ciencia Ficcion");
            jtxtduracion.setText("155 min");
			jtxtclasificacion.setText("A");
	}
	else		
	if (combo.getSelectedItem().equals("Fast & Furious 6")){
		    jtxtgenero.setText("Accion");
            jtxtduracion.setText("90 min");
			jtxtclasificacion.setText("B");
	}		
	
	
	}
    
    public static void main(String[] args) {
  
    Peliculas P=new Peliculas();
    
    }
}

Avatar de Usuario
cascard
Mensajes: 17
Registrado: 25/07/2008 10:42 am
Ubicación: Honduras

Como usar varios escuchadores en el mismo Frame?

#2 Mensaje por cascard » 18/11/2013 6:01 pm

Buenas tardes amigo weezyfbaby, realmente poder usar varios escuchas en una misma clase es sencillo. Primero hay que tener en cuenta que los escuchas en java son interfaces por lo tanto para implementar mas de una se hace uso de la coma ",". por ejemplo:

Código: Seleccionar todo

class Peliculas extends JFrame implements ItemListener, ActionListener {
        resto de codigo que necesitas....
} 
solo tienes que separar por comas las implementaciones de las interfaces.
suerte amigo, espero haberte ayudado.

weezyfbaby
Mensajes: 2
Registrado: 17/11/2013 5:10 pm

Re: Como usar varios escuchadores en el mismo Frame?

#3 Mensaje por weezyfbaby » 18/11/2013 7:22 pm

cascard escribió:Buenas tardes amigo weezyfbaby, realmente poder usar varios escuchas en una misma clase es sencillo. Primero hay que tener en cuenta que los escuchas en java son interfaces por lo tanto para implementar mas de una se hace uso de la coma ",". por ejemplo:

Código: Seleccionar todo

class Peliculas extends JFrame implements ItemListener, ActionListener {
        resto de codigo que necesitas....
} 
solo tienes que separar por comas las implementaciones de las interfaces.
suerte amigo, espero haberte ayudado.
No inventes apoco solo eso me faltaba,jajaja la mala onda que he publicado en varios lados y no me quieren decir :(.

Pero muchísimas gracias colega,ya me salió mi programa,de hecho tenia esa dudota de como implementar varios escuchadores y ya me la resolviste.

Gracias.

Masakre
Mensajes: 249
Registrado: 06/06/2012 10:52 am

#4 Mensaje por Masakre » 23/11/2013 2:00 pm

Saludos, tengo una duda respecto a esto, espero me puedan orientar un poco:
Yo he creado algunos programas con interfaz gráfica en Java... también con Swing, aunque ciertamente lo hice con ayuda de Netbeans. Es decir, lo usaba para seleccionar los eventos y sólo escribía el código dentro de los métodos que aparecían.
He creado también el juego de la Snake. Eso fue como hace 2 meses, un día en que estaba probando muchas de las funciones de Java, porque sólo había visto sobre C++. Y ahora que lo vuelvo a ver, conociendo algunos temas sobre Java, me parece curioso porque usé muchas cosas que no sé ahora mismo qué significan.

Por ejemplo, aparece el método formKeyPressed y también varias instancias de ActionListener (ahora sé que fueron creadas usando clases anónimas), y por otro lado, aparecen métodos que se activan al hacer click en algún componente, como éste por ejemplo: opt1ActionPerformed
Y en ningún momento la clase Principal, que extiende de JFrame, realiza implements de interfaces.

Es la primera vez que escuchó de "escuchadores", como tema. Es decir, había leído Listeners pero no he sabido con exactitud a qué se refiere... ¿Por qué el actionPerformed de ustedes sí necesita agregar implements?

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados