maxresdefault 54

Mover una imagen en Kotlin (Java)🐈‍ (Curso de Kotlin desde cero [92])

En este ejercicio vamos a mover una imagen en Kotlin dentro de nuestra ventana siguiendo estos pasos.

  • Crear un proyecto de kotlin en intellij.
  • Creamos una etiqueta que va a recibir una gif.
  • Creamos un botón con un evento click que:
    • Activará un Timer cambiar la localización de la imagen en X.
    • Si la posición llega al límite de la ventana se detiene.

🔗 Librerias de Java swing: https://es.wikipedia.org/wiki/Swing_(biblioteca_gr%C3%A1fica)

Mover una imagen en Kotlin

Codigo: https://github.com/programadornovato/CursoKotlin/commit/ecf233047a5eb06b2b7ea925c8178330a0891141

Imagen en gif

https://github.com/programadornovato/CursoKotlin/blob/ecf233047a5eb06b2b7ea925c8178330a0891141/src/images/neko.gif

import java.awt.Color
import java.awt.Dimension
import java.awt.Image
import java.awt.event.ActionListener
import java.awt.event.MouseEvent
import java.awt.event.MouseListener
import javax.swing.*


class Ventana ():JFrame(){
    var contenedor=JPanel()
    var etiqueta=JLabel()
    init {
        var d=Dimension(1000,350)
        this.size=d
        defaultCloseOperation=WindowConstants.EXIT_ON_CLOSE
        contenedor.background= Color.white
        this.contentPane.add(contenedor)
        contenedor.layout=null
        var logo=ImageIcon("src/images/neko.gif")
        var logoMin=ImageIcon(logo.image.getScaledInstance(300,200, Image.SCALE_DEFAULT))
        etiqueta.icon=logoMin
        etiqueta.setBounds(10,90,400,300)
        contenedor.add(etiqueta)
        boton()
    }
    fun boton(){
        var boton=JButton("Inicia")
        var i=0
        var l:MouseListener=object:MouseListener{
            override fun mouseClicked(e: MouseEvent?) {
                val timer = Timer(40, ActionListener {
                    etiqueta.setLocation(i,90)
                    repaint()
                    i=i+10
                    if(i>=800){
                        i=800
                    }
                    println("i=$i")
                })
                timer.isRepeats = true
                timer.isCoalesce = true
                timer.start()
            }
            override fun mouseEntered(e: MouseEvent?) {
            }
            override fun mouseExited(e: MouseEvent?) {
            }
            override fun mousePressed(e: MouseEvent?) {
            }
            override fun mouseReleased(e: MouseEvent?) {
            }
        }
        boton.setBounds(10,5,100,20)
        contenedor.add(boton)
        boton.addMouseListener(l)
    }
}

🎦 Lista de reproducción de este curso: https://www.youtube.com/playlist?list=PLCTD_CpMeEKSjzbsW_zmVNz23GyOVsdbS

🎦 [Curso] Java Netbeans Completo☕: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT-qEHGqZH3fkBgXH4GOTF
🎦 [CURSO] PYTHON PARA PRINCIPIANTES🐍: https://www.youtube.com/playlist?list=PLCTD_CpMeEKRppvi86Dy8CPYZ8-XzN2qu

🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
🔗 Pagina oficial: https://www.programadornovato.com
🔗 Gracias por apoyar este canal: https://www.patreon.com/programadornovato
🎦 Canal de youtube: https://www.youtube.com/c/programadornovato

<<Anterior tutorial Siguiente tutorial >>

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Eugenio Chaparro.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a digitalocean.com que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad
Salir de la versión móvil