Curso Java Eventos VIII. Eventos de ratón I. Vídeo 72

Поделиться
HTML-код
  • Опубликовано: 16 сен 2024
  • En este vídeo comenzamos a ver los eventos de ratón. Utilizamos la Interface MouseListener y la clase adaptadora MouseAdapter.
    Para más cursos, ejercicios y manuales visita: www.pildorasinf...

Комментарии • 119

  • @pildorasinformaticas
    @pildorasinformaticas  Год назад +1

    ✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
    🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀
    🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀
    💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥

  • @ZXevious
    @ZXevious 10 лет назад +76

    No te preocupes por el parón, bastante haces que nos das estas formación gratutitamente.
    Un fuerte abrazo y gracias por el video.

    • @pildorasinformaticas
      @pildorasinformaticas  10 лет назад +9

      Miguel Angel Aguilar Bermejo Gracias por tu comentario. Un cordial saludo

  • @joandotcodina8799
    @joandotcodina8799 4 года назад +13

    La alegria de estar buscando una cosa y ver que hay un video de pildorasinformáticas... :D

  • @davjmz5847
    @davjmz5847 6 лет назад +21

    Quiero agradecerte por todo lo que haces por nosotros, eres demasiado bueno quisiera tener profesores como tú en la escuela. y nuevamente muchísimas gracias.

    • @pildorasinformaticas
      @pildorasinformaticas  6 лет назад +3

      Gracias por el comentario. Me alegro de que te gusten los vídeos. Un saludo!!

  • @josealbertochavezparihuama2847
    @josealbertochavezparihuama2847 4 месяца назад

    El mejor curso de mi vida sin duda, Muchas gracias!!

  • @mapacheee_
    @mapacheee_ 5 месяцев назад

    empecé a ver este curso antes de entrar a la uni para saber más de programación, voy en mi 2do mes y la verdad es que programación hasta donde sé con sus conocimientos no es nada. Es como tener una asignatura menos y lo agradezco mucho, gracias por hacer este curso. Lo seguiré viendo hasta el final para algún día ser un gran programador

  • @rokkaku2401
    @rokkaku2401 3 года назад +1

    Muy entretenido este capítulo

  • @destrodevianne4534
    @destrodevianne4534 Год назад

    muchas gracias por el contenido de calidad !! estoy siguiendo el contenido de swing porque nunca lo habia aprendido , hoy en dia en java 20 y el contenido se aplica perfectamente . Saludos.

  • @miguelzels1672
    @miguelzels1672 9 лет назад +4

    Hola buenas, me paso por aquí para dar gracias por el curso java. Está muy bien explicado, es muy amplio y me está ayudando un montón a aprender a crear interfaces gráficas y entender cómo funcionan.

  • @joselebarcelona6539
    @joselebarcelona6539 Год назад

    Clase magistral como siempre, gracias.

  • @giorgiechannel4091
    @giorgiechannel4091 5 лет назад +2

    Ya me estoy emocionado más y más y comienzo a darme una idea de cómo funcionan los videojuegos, mil gracias todavía me faltan casi los otros 200 vídeos y siento que he aprendido más que en la universidad

  • @tugm84
    @tugm84 Год назад

    siempre agradadecir por sus enseñanzas

  • @dantonmontecinos8662
    @dantonmontecinos8662 2 года назад +1

    Despúes de dias con dolor de cabeza gracias a los eventos, por fin pude comprenderlos, antes eran 4-7 videos diarios, ahora 1 ó 2 como mucho, Gracias juannnnn excelente el curso :D

  • @henryalonsoabellasan
    @henryalonsoabellasan 10 лет назад +4

    Saludos profesor y me alegra sobremanera el escucharlo,la web es otra cosa sin usted.

    • @pildorasinformaticas
      @pildorasinformaticas  10 лет назад +2

      Henry Alonso Abella Sanchez Muchas gracias por el comentario y por seguir ahí a la escucha. Un cordial saludo

  • @erickdelgado8649
    @erickdelgado8649 9 лет назад +2

    Simplemente extraordinario, lo haces ver demasiado fácil, saludos, gracias por este grandioso curso...

  • @hectorgabrielvillasboahent4700
    @hectorgabrielvillasboahent4700 3 года назад +1

    Antes que nada, gran curso amigo enserio eres in crack con la enseñanza, y a lo segundo, descubri que si vas a la api JAVA 8 y seleccionas el modo sin marco, puede usar el traductor de google y todo excepto los nombre se traducen a tu idioma

  • @edwinberrones5570
    @edwinberrones5570 6 лет назад +1

    El mejor curso de Java :D estoy muy agradecido por todo lo que hace profe, siga asi Saludos :D

  • @MrRoBoTeCh412
    @MrRoBoTeCh412 5 лет назад +1

    muchisimas gracias, me ha solucionado bastantes dudas de clase, estudio ing en sistemas y agradezco enormemente la información didáctica que proporciona

  • @dohko1159
    @dohko1159 Год назад

    El mejor profesor de todo youtube

  • @diegoguarnizo1984
    @diegoguarnizo1984 8 лет назад

    +pildorasinformaticas Gracias maestro son muy buenos tus cursos ya voy en este video empece desde cero y pues ahora a hecharle ganas a los que siguen y a los demas que hay en tu canal se te agradece tu tiempo para compartir y enseñarnos tu conocimiento

  • @leonardoamayareyes282
    @leonardoamayareyes282 4 года назад +4

    A los que muchos se preguntan que es mejor si usar la interfaz o usar la clase adaptadora, depende de tu código, como sabemos en Java solo se permite la herencia de una sola clase, por lo tanto si prefieres usar la clase adaptadora y mas adelante necesitas heredar de una clase importante, no lo vas a poder hacer y te veras obligado a usar la interfaz y escribir todos los métodos. Si por el contrario no necesitas la herencia de una clase diferente puedes usar la clase adaptadora, con eso reduces el código y lo haces mas limpio.

  • @giomarsalazar7547
    @giomarsalazar7547 6 лет назад

    Gracias por la clase profesor Juan reintegrando debido a problemas en Venezuela, como Agua, Luz (la luz solo dura aprox 9 horas al dia) y el Gas hay que pagar mucho para conseguir y el internet también tenemos muchas fallas..nunca había visto esto en toda lo que va de vida.

  • @nicolasciani1933
    @nicolasciani1933 7 лет назад

    felicitaciones por las ganas que le pones y por que estoy aprendiendo un monton.. actualmente curso el curso oficial de java, y la verdad que entre ese curso y este... estoy entendiendo muy bien la tarea de programar...

  • @javiergarciarodriguez696
    @javiergarciarodriguez696 6 лет назад +1

    excelente curso profe lo felicito por su dedicacion

  • @memejamas3818
    @memejamas3818 3 года назад

    muchas gracias por compartir tu conocimiento con nosotros

  • @juank390
    @juank390 3 года назад +1

    Gracias por compartir su conocimiento

  • @manuelvazquezuribe7208
    @manuelvazquezuribe7208 7 лет назад +2

    Muy bien explicado Como Siempre :D

  • @pildorasinformaticas
    @pildorasinformaticas  9 лет назад

    Kike Arevalo: Así es. El marco sería la fuente y la clase EventoDeRaton el oyente. Un saludo

  • @juansebastiangiraldotrujil2614
    @juansebastiangiraldotrujil2614 6 лет назад +2

    De mucha ayuda, gracias!

  • @joselpuerta2531
    @joselpuerta2531 4 года назад

    eso ultimo era lo que buscaba, el metodo MouseAdapter. es que yo queria implementar el mouseClicked. gracias Broo por estos videos estoy usando el Netbeans pero tambien me sirve. gracias..

  • @yurisalazar6752
    @yurisalazar6752 8 месяцев назад

    Interesante, por alguna razon pense que la clase ActionEvent era la clase de los eventos de Raton, pero resulta que la clase correcta es MouseEvent, creo que la confusion viene de algun video, donde escuche que la clase que escuchaba los eventos de Raton era ActionEvent y que como solo tenia un metodo ActionPerformed, pues era mas facil de manejar que las clases WindowListener y KeyListener.

  • @zeusclash1475
    @zeusclash1475 5 лет назад +1

    senor usted es el mejor usted explica esto de una manera que cualquier individuo pueda entender increible usted es la leche xd 🤓🤓🤓🤓🤓 wao cuanto se me complicaba esto de la programacion y cuando veo sus videos es otra cosa xd increible increible increible xd😎😎😎😎😎 una pregunta ?es posible aprender varios lenguajes de programacion al mismo tiempo? que me recomienda quiero darle tambien al php que me recomienda cuanto tiempo puedo dedicarle a cada uno ?

  • @AlbertoGS1990
    @AlbertoGS1990 7 лет назад +1

    Hola profesor tengo una duda bastante tonta... Cuando veíamos anteriormente los eventos con la interfaz actionListener, los eventos se desencadenaban al hacer click por tanto estos no eran eventos de ratón también? Quiero decir, no hacen las dos interfaces lo mismo? Me da la sensación de que la interfaz actionListener fuese un caso particular de lo que puedes hacer con la interfaz MouseListener y que cualquier cosa que programes con ActionListener lo podrías programar exactamente igual con MouseListener.
    Espero que se haya entendido mi duda y a ver si me puedes arrojar un poco de luz. Como siempre transmitirte un profundo agradecimiento por tu dedicación y mostrarte mi más sincera admiración.

  • @mariamatecna1288
    @mariamatecna1288 9 лет назад +7

    Me encanta, esto se empieza a poner emocionante.
    Duda que me surge, mouseEntered, actua sobre la lamina en si? si la lamina tiene una figura puede actuar al salir o entrar de la figura y no la lamina, o nos vamos forzosamente a getX/Y()?
    otra mas, si una lamina digamos que ocupa el marco completo, le superponemos otra lamina que tapa la primera parcialmente, tendremos que ir a getX/Y() de nuevo?

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +3

      Maria Matecna Hola !! el evento mouseEntered lo puedes aplicar sobre una lámina o sobre cualquier objeto que tengas en tu aplicación gráfica, como por ejemplo una figura. La cosa pasaría por crear una clase que construya la figura y después gestionar el evento sobre la instancia de dicha clase.
      Lo de ir de nuevo a getX/Y no se si lo entiendo del todo. Pero al haber una nueva lámina sobre la anterior, esta nueva lámina tiene sus propias coordenadas X/Y. Un saludo

    • @alejandrocasanovaflores7341
      @alejandrocasanovaflores7341 6 лет назад

      Hola Juan, muchas gracias por tus respuestas... Sabes que hice lo que mencionas, pero no se donde gestionar el evento, ya que en la instancia de dicha clase no me deja... En el siguiente código, donde debería gestionar el método? Gracias C:
      package graficos;
      import java.awt.event.*;
      import javax.swing.*;
      import java.awt.*;
      import javax.imageio.*;
      import java.io.*;
      public class EventosRaton {
      public static void main(String[] args) {
      Marco9 miMarco = new Marco9();
      miMarco.setLocationRelativeTo(null);
      miMarco.setVisible(true);
      miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
      }
      class Marco9 extends JFrame{
      public Marco9() {
      super("Marco con eventos de ratón");
      setSize(500,500);
      ImageIcon icono = new ImageIcon("src/propios/albert.gif");
      setIconImage(icono.getImage());
      EventosRaton2 oyente = new EventosRaton2();
      addMouseListener(oyente);
      Lamina9 miLamina = new Lamina9();
      add(miLamina);
      }
      private class EventosRaton2 extends MouseAdapter{
      @Override
      public void mouseClicked(MouseEvent e) {
      switch (e.getButton()) {
      case MouseEvent.BUTTON1:
      if(e.getX()==2 && e.getY()== 2)
      System.out.println("Pinchaste en la posición x=2 | y=2");
      else
      System.out.println("Boton 1");
      break;
      case MouseEvent.BUTTON2:
      System.out.println("Boton 2");
      break;
      case MouseEvent.BUTTON3:
      System.out.println("Boton 3");
      break;
      }
      }
      }
      }
      class Lamina9 extends JPanel{
      private Image imagen;
      public Lamina9() {
      try {
      this.imagen = ImageIO.read(new File("Fotos/java.png"));
      }catch(IOException e) {
      System.out.println("Problemas al cargar la imagen");
      }
      }
      public void paintComponent(Graphics g) {
      super.paintComponent(g);
      Graphics2D g2 = (Graphics2D)g;
      PintaFoto pintando = new PintaFoto();
      pintando.cargarFoto(imagen, g2);
      }
      }
      class PintaFoto{
      public void cargarFoto(Image imagen, Graphics2D g2) {
      g2.drawImage(imagen, 50, 50, 150, 150, null);
      }
      }

  • @teldatamcy5656
    @teldatamcy5656 7 месяцев назад

    Gracias!!!

  • @JuanMarchant
    @JuanMarchant 9 лет назад +2

    o.O No hay comentarios jijiji
    Saludos Maestro, llevo 3 días pegado con su curso jejeje y lo felicito, esta muy bueno, didáctico y muy bien explicado.
    Me Permite molestarlo con dos dudas:
    1º Habra explicado lo de los métodos recursivos? y
    2º Cuando se ejecuta una ventana o marco, alguna veces las imágenes, botones o dibujos no aparecen y tengo que redimensionar estas para que si aparezcan, se le ocurre por que ocurre eso?
    Gracias de antemano y suerte!!!!

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +6

      Juan Marchant Hola !! Gracias por el comentario.
      1º No, aún no he hablado de recursividad Java. Pero este curso está en elaboración y aún queda algo más de la mitad.
      2º Eso ocurre porque la instrucción setVisible(true) debe estar en último lugar, tanto si la creamos dentro del constructor, como si la creamos dentro del main.
      Un saludo

  • @anthonymruiz7302
    @anthonymruiz7302 7 лет назад +1

    Excelente profesor. Usted explica mucho mejor que mi maestro de la universidad. Por casualidad, ¿tendras un curso de Java con bases de datos?

  • @matecbc2076
    @matecbc2076 8 лет назад

    Hola. Buenísimos los vídeos. ¿Cual es la diferencia entre crear el objeto tipo EventosDeRaton dentro del constructor (como ud. hizo en este ejemplo) y crearlo fuera del él? Desde ya gracias por la respuesta!!

  • @Emilito469
    @Emilito469 2 года назад +1

    Amonos por la segunda dosis...

  • @vinicioangel7600
    @vinicioangel7600 Год назад

    Como siempre un buen vídeo. Solamente tuve una pregunta y es por que al sobreescribir los metodos de las interfaces o las clases de eventos como el metodo mousePressed, por que no se escribe el super() en la primera linea si segun vimos en el curso es para que el metodo haga el trabajo para lo que fue hecho?

  • @stelin41_es
    @stelin41_es 9 лет назад +15

    Muy buen curso , una pregunta profesor ¿ que es @Override ?

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +21

      +Stevan L. Hola !! Gracias. @Override=Sobreescritura. Sale cuando se hereda un método de una clase padre y lo volvemos a crear en la clase hija.
      Un saludo

    • @stelin41_es
      @stelin41_es 9 лет назад

      +pildorasinformaticas Gracias

    • @newisaucris225
      @newisaucris225 8 лет назад +2

      +PayDay 444 Hola Oye No Funciona con el TouchPad verdad? de la laptop ahi alguna forma de hacerlo funcionar asi

    • @spike_wav
      @spike_wav 6 лет назад

      en el mio si funciona men

  • @designanimation
    @designanimation 6 лет назад +1

    Excelente video profe!! Una consulta a todos, ya que no me ha quedado claro quien es el objeto listener. Mitad bien por favor:
    Objeto evento: clic del mouse
    Objeto fuente: Marco
    Objeto listener: ???
    Hemos puesto la instancia de la clase que implemente la interfaz MouseListener es el objeto que esta a la escucha sin embargo, que quiere decir esto? El marco esta a la escucha? Es decir que el marco es el objeto fuente y tambien el objeto listener? AYUDAAAA
    Gracias!

    • @santimostei3356
      @santimostei3356 6 лет назад

      Buenas! estás en lo cierto cuando decis que el objeto de tipo MouseListener es el objeto oyente. Hasta acá bien, ahora. Como funciona?
      Al instanciar el objeto de tipo MouseListener en el constructor del frame en este caso, al agregarlo al metodo addMouseListener(objetoOyente) lo que sucede es que, cuando el compilador llega a esa instruccion (addMouseListener), automaticamente viaja a los metodos que escribiste en la clase MouseListener y realiza esas instrucciones, ya que al poner ese objetoOyente en addMouseListener, este objeto queda como "a la escucha" de lo que va a suceder con el marco según lo que escribiste en los metodos correspondientes.
      No sé si me expliqué bien, un saludo y suerte!!!

  • @jordibonastre2642
    @jordibonastre2642 7 лет назад +2

    Buenos dias profe ;
    Con estos videos de los eventos me surgieron algunas dudillas.
    -cuando tienes un programa que al pulsar una tecla te la diga por consola con un syso ,es decir aplicando la interface KeyListener, los possibles eventos de teclado serian : dejar pulsado ,presionar, "type"... i el objeto oyente es el que implementa la interface Keylistener pero.. el objeto fuente es el frame o la tecla ??
    -me podrias explicar la diferencia entre ActionListener i MouseListener??
    muchissimas graciias de antemano i a seguir con el curso :D

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +1

      El objeto fuente sería la tecla.
      La diferencia entre ambos Listener es que MouseListener necesita de una interfaz gráfica de usuario mientras que ActionListener no necesita una interfaz para funcionar. Un saludo!!

  • @zamoray123
    @zamoray123 9 лет назад +3

    Barbaro.... Juan

  • @rootclever2883
    @rootclever2883 6 лет назад

    al querer entrar en el cuadro de sugerencia de eclipse, no me deja para poder interactuar con la sugerencia de autocompletado de codigo ya sea por errores y en este caso para completar las sobreescritura de los metodos. alquien me podria ayudar.

  • @Franc344
    @Franc344 7 лет назад +3

    ¿No se pueden crear todas las clases en ficheros separados: botones, window, teclado, ratón... y derivar todas a la clase main?
    Yo lo hice pero no se implementan :
    Crea dos marcos con botones para cambiar el fondo (funciona)
    Pero no implementa los métodos de teclado y de ratón. El de teclado funciona si comentas
    /*A1 marco2=new A1();
    marco2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//sale de la aplicacion
    marco1.setTitle("ventana 1"); marco2.setTitle("ventana 2");
    marco1.setBounds(300,300,500,300); marco2.setBounds(900,300,500,300);*/
    y
    /*B1 lamina1=new B1();
    add(lamina1);//añade la lamina
    lamina1.setBackground(Color.CYAN);//da color al fondo
    //W1 ventana1 = new W1();
    //addWindowListener(ventana1);
    addWindowListener(new W1 ()); //abreviatura de las 2 lineas de código anteriores
    W2 ventana2 = new W2();
    addWindowStateListener(ventana2);
    //addWindowStateListener(new W2 ()); //abreviatura de las 2 lineas de código anteriores
    M1 raton =new M1();
    AddMouseListener(raton);
    //AddMouseListener(new M1()); //abreviatura de las 2 lineas de código anteriores
    el de teclado no marca error
    el de raton marca error //el metodo AddMouseListener no esta definido para el tipo A1*/
    ¿CUAL ES EL PROBLEMA?
    Ejercicio completo
    METODO MAIN
    package graficos;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Evento {
    public static void main(String[] args) {

    A1 marco1=new A1();
    marco1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//cierra la ventana
    A1 marco2=new A1();
    marco2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//sale de la aplicacion
    marco1.setTitle("ventana 1"); marco2.setTitle("ventana 2");
    marco1.setBounds(300,300,500,300); marco2.setBounds(900,300,500,300);
    }}
    class A1 extends JFrame{//clase A1 = crea marco
    public A1(){//constructor
    setBounds(700,300,500,300);//ubicación del marco y tamaño (x,y =cuadrado =500x500)
    setTitle("Botones y Eventos");//título
    setVisible(true);//se puede hacer arriba o abajo
    B1 lamina1=new B1();
    add(lamina1);//añade la lamina
    lamina1.setBackground(Color.CYAN);//da color al fondo
    //W1 ventana1 = new W1();
    //addWindowListener(ventana1);
    addWindowListener(new W1 ()); //abreviatura de las 2 lineas de código anteriores
    W2 ventana2 = new W2();
    addWindowStateListener(ventana2);
    //addWindowStateListener(new W2 ()); //abreviatura de las 2 lineas de código anteriores
    M1 raton =new M1();
    AddMouseListener(raton);
    //AddMouseListener(new M1()); //abreviatura de las 2 lineas de código anteriores
    TK1 tecla =new TK1();
    addKeyListener(tecla);
    //addKeyListener(new TK1 ()); //abreviatura de las 2 lineas de código anteriores
    }}
    CLASE BOTONES
    package graficos;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JPanel;
    public class B1 extends JPanel implements ActionListener{ //clase B1 = crea botones. Agrega una lamina encima del marco
    JButton B_azul=new JButton ("azul");
    JButton B_rojo=new JButton ("rojo");
    JButton B_amarillo=new JButton ("amarillo");
    public B1(){//constructor
    add(B_azul);
    add(B_rojo);
    add(B_amarillo);
    /*ColorFondo Amarillo =new ColorFondo(Color.yellow); //con clase interna
    ColorFondo Azul =new ColorFondo(Color.blue);
    ColorFondo Rojo =new ColorFondo(Color.red);*/
    B_azul.addActionListener(this); // this=la lamina
    B_rojo.addActionListener(this); //Objeto Evento: alhacer clic = Action => raton
    B_amarillo.addActionListener(this); } //Objeto Fuente = el boton =B_azul
    //Objeto Listener/oyente = this =la propia clase B1
    public void actionPerformed(ActionEvent e){ //actionPerformer recibe un objeto de tipo acción even
    //pero no sabe de quien lo recibe
    Object botonpulsado=e.getSource(); //getSource (método de la clase ActionEven) que captura el origen del evento
    if(botonpulsado==B_azul){
    setBackground(Color.blue);
    }else if(botonpulsado==B_rojo){
    setBackground(Color.red);
    }else
    setBackground(Color.yellow);
    /*private class ColorFondo implements ActionListener{ //la convertimos en una clase interna
    public ColorFondo (Color c){
    colorFondo=c;
    }
    public void actionPerformed(ActionEvent e){
    setBackground(colorFondo);
    }
    private Color colorFondo; */
    }
    }
    CLASE WINDOW
    package graficos;
    import java.awt.Frame;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.awt.event.WindowStateListener;
    public class W1 extends WindowAdapter{ //WindowListener se elimino por WindowAdapter
    public void windowIconified(WindowEvent e) { //Se implementa solo un método de los 7 de WindowListener
    System.out.println("ventana minimizada");
    }
    /*@Override Se implementan todos los métodos de WindowListener
    public void windowActivated(WindowEvent arg0) {
    System.out.println("ventana activada"); }
    public void windowClosed(WindowEvent arg0) {
    System.out.println("la ventana ha sido cerrada");}
    public void windowClosing(WindowEvent arg0) {
    System.out.println("cerrando ventana"); }
    public void windowDeactivated(WindowEvent arg0) {
    System.out.println("ventana desactivada"); }
    public void windowDeiconified(WindowEvent arg0) {
    System.out.println("ventana maximizada"); }
    public void windowIconified(WindowEvent arg0) {
    System.out.println("ventana minimizada");}
    public void windowOpened(WindowEvent arg0) {
    System.out.println("ventana abierta"); } */
    }
    class W2 implements WindowStateListener{ //implementa la Iz windowStateChanged(WindowEvent e)
    @Override
    public void windowStateChanged(WindowEvent e) { //invocado cuando algo cambia de estado
    System.out.println("La ventana ha cambiado de estado");
    System.out.println(e.getNewState()); //método de la Iz windowStateChanged
    //getNewState da el estado al que ha cambiado la ventana dando un nº:
    //0=normal, 1=minimizada, 6=pantalla completa ...etc
    if(e.getNewState()==Frame.MAXIMIZED_BOTH){ //Ambas sentencias son iguales ya que
    //if(e.getNewState()==6){ Frame.MAXIMIZED_BOTH es = a 6
    System.out.println("La ventana esta ha pantalla completa");
    }else if(e.getNewState()==Frame.NORMAL){
    System.out.println("La ventana esta normal");
    }else if(e.getNewState()==Frame.ICONIFIED){
    System.out.println("La ventana esta minimizada");
    }
    ;
    } }
    CLASE TECLADO
    package graficos;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    public class TK1 implements KeyListener{ //la Iz KeyListener implementa 3 métodos:
    @Override
    public void keyPressed(KeyEvent e) {
    int numero=e.getKeyCode();
    System.out.println(numero); }
    public void keyReleased(KeyEvent e) {
    boolean verdad_falso=e.isActionKey();
    System.out.println(verdad_falso);
    }
    public void keyTyped(KeyEvent e) {
    char letra=e.getKeyChar();
    System.out.println(letra);
    }
    }
    CLASE MOUSE
    package graficos;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    public class M1 implements MouseListener{ //clase adaptadora => eliminar implements... y
    //colocar extends MouseAdapter (implementando el/los metodo/s deseado/s)
    @Override
    public void mouseClicked(MouseEvent e) {
    System.out.println("Has hecho click");
    }
    public void mouseEntered(MouseEvent e) {
    System.out.println("Acabas de entrar");
    }
    public void mouseExited(MouseEvent e) {
    System.out.println("Acabas de salir");
    }
    public void mousePressed(MouseEvent e) {
    System.out.println("Acabas de presionar");
    }
    public void mouseReleased(MouseEvent e) {
    System.out.println("Acabas de levantar");
    }}

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад

      Esta duda requiere que me ponga con ella un buen rato. Si tengo tiempo lo haré pero no te lo aseguro. Un saludo!!

    • @nombreapellidos1094
      @nombreapellidos1094 7 лет назад

      Tienes primero que crear un paquete en la carpeta madre, "src" y crear un archivo por clase en el que en cada uno este exportado el paquete

  • @MatiasEzelQ
    @MatiasEzelQ 9 лет назад +2

    En que se diferencia el método mouseClicked a actionPerformed de la interfaz actionListener? Los dos actúan al clickear

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +3

      +Matias Daneri mouseClicked no pertenece a la interfaz actionListener (mira la API y lo verás). actionPerformed se ejecuta cuando ocurre una acción, no solo cuando haces click con el ratón (lo verás en la API también) Un saludo

  • @fermingomez2481
    @fermingomez2481 8 лет назад +2

    Ingeniero una pregunta quisiera saber si ya a seguir extendiendo mas este curso de java, en particular si va a enseñar a hacer interfaces graficas con "javafx" ya que swing va de salida, solo es un comentario no me lo tome a mal, solo quiero saber si se prolongaran los videos de java

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +8

      +Fermin Gomez Este curso de Java tendrá unos 350 vídeos, o sea que todavía queda bastante curso. Respecto a lo que comentas de JavaFX tengo pensado hacer un curso en el futuro, pero no como parte de este curso de Java ya que JavaFX no forma parte del JDK sino que es una tecnología exclusiva de Oracle que podría suspender o modificar cuando quisiera. Es decir, no forma parte del estándar de Java. Un saludo!!

  • @pyromaremoto
    @pyromaremoto 2 года назад

    Estoy tratando de usar los eventos de raton en un Label y en un ratón, como podría hacerlo? Solo consigo que los eventos de disparen al entrar en el frame

  • @SoyJavero
    @SoyJavero Год назад

    La luz cada vez es mas clara😅❤

  • @miguelangeldeleonsanchez1778
    @miguelangeldeleonsanchez1778 7 лет назад +2

    hola ando buscando el curdo donde hizo los codigos marcos de raton para agarrarle mas la onda me lo podria proporcionar por favor
    de todos modos seguire buscando , espero

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад

      No se a qué vídeos te refieres ahora mismo. Tengo varios vídeos con eventos de ratón y JFrame: vídeos 72 y 73:
      ruclips.net/video/SMLwQxlPa9w/видео.html
      ruclips.net/video/9Zflg2FnVjo/видео.html
      Un saludo!!

  • @surferita96
    @surferita96 4 года назад

    Una duda. La clase FocoVentana tiene dos variables de clase que son de la misma clase FocoVenta. No llego a digerir esto

  • @fermingomez2481
    @fermingomez2481 8 лет назад +1

    Ingeniero le tengo otra pregunta esta contemplando hacer tutoriales de otra tecnologias o de redes cisco, si es asi cuales son, o seguira extendiendo los videos que ya tiene, gracias por su tiempo y su aportacion un saludo desde Mexico

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +3

      +Fermin Gomez Hola !! Es mi intención seguir haciendo cursos nuevos entre ellos cursos de redes, diseño gráfico etc. Un saludo!!

  • @ArmanGO-Oficial
    @ArmanGO-Oficial 3 года назад +1

    Buenas tardes, tengo una duda, pensé que la interfaz actionListener representaba a los eventos de ratón, entonces me confundo con está interfaz MouseListener, cual es la diferencia entre estás dos?, agradecería mucho una respuesta

    • @atherbsc5384
      @atherbsc5384 3 года назад +2

      El action se usa por lo general para capturar el raton (click) sobre un componente, mientras que mouselistener es mas especialista porque aparte del click te captura si lo moviste, soltaste, etc

    • @DarkAlex895
      @DarkAlex895 3 года назад

      Hola, a mi tambien me surgió esa curiosidad. Pero como yo lo veo es: MouseListener es una interfaz dedicada a trabajar con eventos del raton, digase hacer click y demás. Pero si te fijas la clase de eventos que maneja ActionListener es ActionEvent, al entrar a esa clase se nos define que son eventos que ocurren de componentes definidos previamente. Por ejemplo, teniamos que crear un boton y para que la accion ocurriera debíamos hacer click en el boton (el cual es un componente que definimos). Espero haberme explicado bien y haberte ayudado, de todas formas si dominas el ingles te recomiendo ir a la API y leer las definiciones de ActionListener, ActionEvent y MouseListener.

  • @santimostei3356
    @santimostei3356 6 лет назад +1

    Muy buenas! Es la primera vez que te escribo en el canal. Tengo una duda inquietante que espero que me puedas responder:
    El metodo paintComponent puede ser llamado desde otro metodo?
    Por ejemplo, si quisiera crear una clase con un Frame y otra con un JPanel como venimos haciendo, a ese JPanel le añadimos un metodo paintComponent con alguna imagen, y por ejemplo, al apretar una tecla (evento de teclado) cambie la imagen por otra. En este caso, en un metodo keyPressed por ejemplo, podemos llamar a ese metodo paintComponent que tenia la anterior imagen con la instrucción super y modificarlo desde keyPressed? Asi al desencadenarse el evento ocurra dicha accion?
    Desde ya muchas gracias por todo, me gusta mucho este curso, y perdón si no me explique bien. Saludos desde Argentina!

    • @pildorasinformaticas
      @pildorasinformaticas  6 лет назад +1

      Hola! El método paintComponent tiene la particularidad de que es invocado automáticamente cuando se realizan acciones tales como redimensionar la ventana, maximizarla etc. Si necesitas volver a pintar componentes bao un evento en concreto, utiliza el método repaint() Un saludo!!

    • @santimostei3356
      @santimostei3356 6 лет назад

      Muchas gracias!!!!

  • @kikearevalo1408
    @kikearevalo1408 9 лет назад +1

    Sensei una duda!! Al colocar addMouseListener dentro del constructor de la clase que herada de JFrame, quiere decir que el propio marco es la fuente??

    • @nicozuki
      @nicozuki 8 лет назад

      claro, si querés que otra sea la fuente, te creas un JButton y entonces pones JButton.addMouseListener y el botón sería la fuente.

    • @1688amg
      @1688amg 6 лет назад

      Hola la fuente no seria el boton del ratón o el propio ratón al pasarlo en el frame? Y el oyente si seria el frame?

    • @ArmanGO-Oficial
      @ArmanGO-Oficial 3 года назад

      @@1688amg La fuente seria el propio botón, el cual desencadena la acción hacia el oyente

  • @fernandomaldonado8202
    @fernandomaldonado8202 8 лет назад +1

    Hola pildorasinformaticas lo que pasa es que tengo un error al momento de poner addMouseListener(EventoRaton); y el error es el siguiente : The method addMouseListener(EventoRaton) is undefined for the type Eventos_Raton ¿Como lo soluciono?

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Pues dice que el método está sin definir. Si copias y pegas por aquí todo tu código tal vez te pueda ayudar. Un saludo!!

    • @fernandomaldonado8202
      @fernandomaldonado8202 8 лет назад +1

      pildorasinformaticas muchas gracias por la respuesta ya pude solucionarlo :)

  • @yoelcesarramosmayta481
    @yoelcesarramosmayta481 8 лет назад +1

    hola pildoras informaticas. ami me sale este mensaje o se que quiere decir.
    Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: Not supported yet.
    uso version de java versión 7

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +yoel cesar ramos mayta Hola !! Quiere decir que has introducido alguna instrucción no soportada por el lenguaje y genera una excepción (error en tiempo de ejecución). Para poder ayudarte con este error, necesito que copies y pegues todo tu código por aquí. Un saludo

    • @yoelcesarramosmayta481
      @yoelcesarramosmayta481 8 лет назад +1

      +pildorasinformaticas gracias eres el mejor ya lo he detectado la excepcion.

  • @lestherelyhuneth1234
    @lestherelyhuneth1234 6 лет назад +1

    cuando dices campos de clase te refieres a constantes de clase o estoy equivocado ?

    • @pildorasinformaticas
      @pildorasinformaticas  6 лет назад +1

      Campo de clase puede ser una variable o una constante. Un saludo!

    • @lestherelyhuneth1234
      @lestherelyhuneth1234 6 лет назад

      Gracias maestro y dejame decirte que eres un crack , descubri tu canal el año pasado y desde entonces no he parado de aprender , Gracias por compartir tus conocimientos gente como tu cambia al mundo , nunca se sabe, mucha gente que aprende contigo en el futuro puede llegar a tener exito.

  • @newisaucris225
    @newisaucris225 8 лет назад +1

    Hola Oye No Funciona con el TouchPad verdad? de la laptop ahi alguna forma de hacerlo funcionar asi

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +isaac barragan Hola !! Debería de funcionar. Lo que ocurre es que es más complicado manejar el touchpad con eventos click y rollover. Pon un ratón normal y comprueba si el fallo es de tu touchpad o de tu código. Un saludo

    • @newisaucris225
      @newisaucris225 8 лет назад

      +pildorasinformaticas lo que pasa es que cuando ejecuto no da error y en cuanto pongo el puntero del raton en el panel da error

  • @juniorstevenreynosocalzada9033
    @juniorstevenreynosocalzada9033 5 лет назад

    Una consulta, estoy tratando de usar el JToolTip sobre un Rectangle2D, el JTextField por default cuenta con el método setTipToolText, pero como haría para que al pasar el mouse sobre un rectángulo se me active el JToolTip ya que el Rectangle2D no cuenta con este método por defecto. Muy agradecido de antemano y felicitaciones por sus videos. Gracias

    • @lmga4159
      @lmga4159 5 лет назад +1

      Usá una JLabel o JPanel y dibujá el rectángulo dentro, ocupando toda la dimensión del componente. Ahora lo voy a tratar de hacer si me sale te adjunto el código. Saludos.

    • @lmga4159
      @lmga4159 5 лет назад

      package pruebas;
      import javax.swing.JLabel;
      import javax.swing.JFrame;
      import java.awt.Color;
      import java.awt.FlowLayout;
      public class EtiquetaEspecial extends JLabel {

      public EtiquetaEspecial() {
      super("Cuenta la historia de un mago...");
      setForeground(Color.BLACK);
      setBackground(Color.BLACK);
      setOpaque(true);
      setToolTipText("Hola");
      }
      public static void main(String[] args) {
      JFrame aplicacion = new JFrame("Ejemplo");
      aplicacion.add(new EtiquetaEspecial());
      aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      aplicacion.setLayout(new FlowLayout());
      aplicacion.setSize(300,300);
      aplicacion.setLocationRelativeTo(null);
      aplicacion.setVisible(true);
      }
      }
      Tambien podrías setear el frame con layout nulo y agregar un panel con el toolTip y a este sobreescrirle el método paintComponent y dibujar dicho rectángulo con las dimensiones del panel.

  • @geynergonzalez268
    @geynergonzalez268 4 года назад

    Perdón mi ignorancia pero qué es una clase adaptadora?

    • @elfegomelgar
      @elfegomelgar 4 года назад +1

      Si notaste en este ejemplo tuvo que usar los 5 metodos de la interface MouseListener, con una clase adaptadora evitas esto y creas solamente el metodo que tu deseas para eso usas MouseAdapter, ya no usas implementes MouseListener sino extends MouseAdapter, lo explico en uno de los videos anteriores

  • @andyj9273
    @andyj9273 7 лет назад +1

    alguna manera de cuando haga clic sobre el panel cambie de color?

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +1

      Hay un ejemplo en este curso (no recuerdo el nº del vídeo) donde pulsando botones la lámina (panel) va cambiando de color. Poco habría que cambiar en el código de ese ejemplo para que al pulsar sobre el panel este cambie de color. Un saludo!!

    • @andyj9273
      @andyj9273 7 лет назад

      +pildorasinformaticas muchas gracias espero llegar pronto atte tu fiel seguidor :)

    • @spmpoeta3425
      @spmpoeta3425 6 лет назад

      necesito ver ese video donde cambia de color pero aun no lo encuentro ¡¡¡¡

  • @javicostapaton1444
    @javicostapaton1444 6 лет назад

    Hola, gracias por las explicaciones.
    Tengo una duda, he seguido los pasos del video y tengo un error que no lo consigo solucionar.
    ¿Me puedes ayudar?
    Te adjunto el código:
    package graficos;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Evento_Raton {
    public static void main (String args[]){
    MarcoRaton mimarco=new MarcoRaton();
    mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
    class MarcoRaton extends JFrame {
    public MarcoRaton(){
    setVisible(true);
    setBounds(700,300,600,450);

    EventosDeRaton EventosRaton =new EventosDeRaton();
    addMouseListener(EventosRaton);
    }
    }
    //implementar a clase de mouselistener
    class EventosDeRaton implements MouseListener{
    public void mouseClicked(MouseEvent arg0){
    System.out.println("Has hecho click");
    }
    public void mouseEntered(MouseEvent arg0){
    System.out.println("Acabas de entrar");
    }
    public void mouseExited(MouseEvent arg0){
    System.out.println("Acabas de salir");
    }
    public void mousePressed(MouseEvent arg0){
    System.out.println("Acabas de presionar");
    }
    public void mouseReleased(MouseEvent arg0){
    System.out.println("Acabas de Levantar");
    }
    }
    Me subraya: Me subraya EventosRaton "addMouseListener(EventosRaton); "

    •  4 года назад

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

  • @armandopenaleonett1258
    @armandopenaleonett1258 6 лет назад

    ¿a que se refiere la API con "componente" usa mucho esta palabra ?

    • @lmga4159
      @lmga4159 5 лет назад +2

      Un botón, barra de herramientas, paneles, cajas de texto, ventanas, son todos ejemplos de componentes. Saludos.

  • @ivangarcia611
    @ivangarcia611 4 года назад

    para ejecutar los metodos pide una ecepcion.

    • @elfegomelgar
      @elfegomelgar 4 года назад +1

      Acabo de realizar el ejercicio y no es asi

    • @ivangarcia611
      @ivangarcia611 4 года назад

      @@elfegomelgar ya lo solucioné.

  • @francooyarce9889
    @francooyarce9889 4 года назад

    Hola tengo una pregunta, como hago para que en el marco salga el mensaje y no en consola. El mensaje me gustaría escribirlo en jpanel ya que quiero que al pulsar un boton salga el mensaje, pero paintComponent no sirve en ese caso, seria grandioso que me pudieras ayudar.

    • @pildorasinformaticas
      @pildorasinformaticas  4 года назад +3

      Escribirte eso por aquí es largo y complejo pero no te preocupes, en el curso se ven numerosos ejemplos donde escribimos mensajes en el JPanel. Tal vez aún no has llegado a esos ejemplos. Un saludo!

    • @francooyarce9889
      @francooyarce9889 4 года назад

      @@pildorasinformaticas aaaa dle muchas gracias, tus cursos antiguos y nuevos son increíbles. No pierdes la calidad :D

  • @rafaelramirez8820
    @rafaelramirez8820 8 лет назад +1

    Hola que tal, te hago una pregunta En donde puedo encontrar ejercicios prácticos para implementar todo lo que he venido aprendiendo ya que me preocupa que se me olviden las cosas por falta de practica. (Estuve en tu pagina pero parece que no tienes nada aun).
    mis mayores respetos un abrazo!

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Hola !! No, no tengo nada aún. Estoy trabajando en una nueva página y la mía está un poco abandonada. Espero poner en funcionamiento la nueva web dentro de poco e iré subiendo ejercicios. No se dónde puedes encontrar ejercicios mientras tanto. Si buscas en google "Ejercicios java" seguro que encuentras cosas interesantes por ahí. Un saludo!!

  • @guidonicolini8403
    @guidonicolini8403 3 года назад

    Hola!! El marco no reacciona al click! a alguien le paso lo mismo? Como lo solucionaron?
    import javax.swing.*;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    public class UsandoMouse {
    public static void main(String[] args) {
    MouseMarco marcoMouse = new MouseMarco();
    marcoMouse.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
    //***********************************************//
    class MouseMarco extends JFrame{
    public MouseMarco(){
    setVisible(true);
    setBounds(200,200,600,600);
    EventosRaton raton = new EventosRaton();
    addMouseListener(raton);
    }
    }
    //*******************************************//
    class EventosRaton extends MouseAdapter {
    public void mouseClicked(MouseEvent e){
    System.out.println("Haz hecho click");
    }
    }

  • @oscarmtzdev
    @oscarmtzdev 7 лет назад

    ¿Por que no me funciona con el TouchPad de la laptop?

    • @oscarmtzdev
      @oscarmtzdev 7 лет назад

      No es verdad, ya lo he corregido, estaba llamando a otra clase en el metOdo principal,a veces cometo erroreS muy totnto xd