maxresdefault 6 3

args en Kotlin ¿que es? y como crear ejecutable en intellij (Curso de Kotlin desde cero [90])

En este tutorial vamos a aprender a crear un ejecutable de nuestro código y además le podremos pasar argumentos osea args en Kotlin a nuestra clase main atrevas de la terminal en windows.

  • Declararemos un JTextArea de forma global.
  • Crearemos un método ponerTextos que reciba un arreglo de Strings
  • Desde nuestra clase principal llamaremos nuestro método ponerTextos que escribira en el JTextArea los argumentos que recibamos desde el main.
  • Crearemos un jar así:
    • Ir a Menu | File | Project Structure y seleccionamos Artifacts.
    • Clic en JAR y seleccionamos From modules with dependencies..
    • A la derecha del campo Clase principal, haga clic en y seleccione la clase principal en el cuadro de diálogo que se abre.
    • Aplicar los cambios y cerrar el diálogo.

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

Comando: java -jar CursoKotlin.jar ejemplo1 ejemplo2 ejemplo3

Args en Kotlin

Codigo: https://github.com/programadornovato/CursoKotlin/commit/3b3075bfd03148e0faf33b3a1d2633d20391004d

///src/main.kt
import java.lang.management.ManagementFactory
import javax.swing.JOptionPane

fun main(args:Array<String>){
    var v=Ventana("Este es mi titulo ${getPid()}")
    v.isVisible=true
    v.meteArgumentos(args)
    /*
    for(i in 1 .. 10){
        Thread.sleep(200)
        v.setLocation(i*30,i*30)
    }
    */
    //v.setLocation(500,500)
    //v.setBounds(500,500,500,500)
    v.setLocationRelativeTo(null)
}
fun getPid():String?{
    return ManagementFactory.getRuntimeMXBean().name
}


//src/Ventana.kt
import java.awt.*
import java.awt.event.*
import java.lang.Exception
import java.util.regex.Matcher
import java.util.regex.Pattern
import javax.swing.*

class Ventana(titulo:String?):JFrame(titulo){
    var contenedor=JPanel()
    var muestraArgumentos=JTextArea()
    init {
        var d=Dimension(500,500)
        this.size=d
        defaultCloseOperation=WindowConstants.EXIT_ON_CLOSE
        this.contentPane.add(contenedor)
        contenedor.layout=null
        muestraArgumentos.setBounds(10,10,450,200)
        contenedor.add(muestraArgumentos)
        //evento()
        //eventosRaton()
        //eventoTeclado()
        //validarNumero()
        //validarCorreo()
    }
    fun meteArgumentos(argumentos:Array<String>){
        argumentos.forEach {
            muestraArgumentos.append("$it\n")
        }
    }
    fun validarCorreo(){
        var caja=JTextField()
        caja.setBounds(10,10,400,30)
        contenedor.add(caja)

        var areaTexto=JTextArea()
        areaTexto.setBounds(10,50,400,200)
        contenedor.add(areaTexto)

        var l:KeyListener=object :KeyListener{
            override fun keyPressed(e: KeyEvent?) {
            }
            override fun keyTyped(e: KeyEvent?) {
            }
            override fun keyReleased(e: KeyEvent?) {
                if(e!!.keyChar=='\n'){
                    if(esCorreo(caja.text)==true){
                        areaTexto.append("Si humano, es cun correo\n")
                    }else{
                        areaTexto.append("No humano estupidoo, No es cun correo\n")
                    }
                }
            }
        }
        caja.addKeyListener(l)
    }
    fun esCorreo(texto:String):Boolean{
        var patroncito:Pattern=Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$")
        var comparador:Matcher=patroncito.matcher(texto)
        return comparador.find()
    }
    fun validarNumero(){
        var caja=JTextField()
        caja.setBounds(10,10,400,30)
        contenedor.add(caja)

        var areaTexto=JTextArea()
        areaTexto.setBounds(10,50,400,200)
        contenedor.add(areaTexto)

        var l:KeyListener=object :KeyListener{
            override fun keyPressed(e: KeyEvent?) {

            }

            override fun keyTyped(e: KeyEvent?) {

            }

            override fun keyReleased(e: KeyEvent?) {
                if(esNumero(caja.text)==true){
                    areaTexto.append("Si humano, si es un numero\n")
                }else{
                    areaTexto.append("No humano estupido, esto no es un numero\n")
                }
            }
        }
        caja.addKeyListener(l)
    }
    fun esNumero(texto:String):Boolean{
        try {
            texto.toInt()
            return true
        }catch (e:Exception){
            return false
        }
    }
    fun eventoTeclado(){
        var caja=JTextField()
        caja.setBounds(10,10,400,30)
        contenedor.add(caja)

        var areaTexto=JTextArea()
        areaTexto.setBounds(10,50,400,200)
        contenedor.add(areaTexto)

        var l:KeyListener=object :KeyListener{
            override fun keyPressed(e: KeyEvent?) {
                areaTexto.append("keyPressed\n")
            }
            override fun keyTyped(e: KeyEvent?) {
                areaTexto.append("keyTyped\n")
            }
            override fun keyReleased(e: KeyEvent?) {
                //areaTexto.append("keyReleased\n")
                if(e!!.keyChar=='*'){
                    areaTexto.append("Soltaste el asterisco\n")
                }
                if(e!!.keyChar=='\n'){
                    areaTexto.append("Soltaste el enter\n")
                }
                if(e!!.keyChar==' '){
                    areaTexto.append("Soltaste el espacio\n")
                }
            }
        }
        caja.addKeyListener(l)
    }
    fun eventosRaton(){
        var boton=JButton("Humano ponte a jugar con tu raton (¡¡¡El de la compu!!!)")
        boton.setBounds(10,10,450,30)
        contenedor.add(boton)

        var caja=JTextField()
        caja.setBounds(10,50,400,30)
        contenedor.add(caja)

        var l:MouseListener=object :MouseListener{
            override fun mouseClicked(e: MouseEvent?) {
                //caja.text="mouseClicked"
            }
            override fun mouseEntered(e: MouseEvent?) {
                caja.text="mouseEntered"
            }
            override fun mouseExited(e: MouseEvent?) {
                caja.text="mouseExited"
            }
            override fun mousePressed(e: MouseEvent?) {
                caja.text="mousePressed"
            }
            override fun mouseReleased(e: MouseEvent?) {
                caja.text="mouseReleased"
            }
        }
        boton.addMouseListener(l)
    }
    fun evento(){
        var boton=JButton("Humano coloca tu miserable nombre en el cuadro de texto y da click aqui")
        boton.setBounds(10,10,450,30)
        contenedor.add(boton)

        var caja=JTextField()
        caja.setBounds(10,50,400,30)
        contenedor.add(caja)

        var etiqueta=JLabel()
        etiqueta.setBounds(10,100,400,30)
        contenedor.add(etiqueta)

        var accion=ActionListener{
            etiqueta.text="Hola ${caja.text}"
        }
        boton.addActionListener(accion)


    }
}

🎦 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 >>

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que está utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)