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