[Curso] Kotlin de 0 a 100

Lista desplegable (JComboBox)(Curso de Kotlin desde cero [84])

En este tutorial vamos a aprender a crear una lista desplegable (JComboBox) al cual le vamos a agregar varios items y los vamos a seleccionar y mostrar en consola.

  • Crear una lista de Strings (de cualquier cosa en mi caso serán lenguajes de programación)
  • Agregaremos la lista de strings a nuestro JComboBox.
  • Haremos que seleccione un item por index y por valor del ítem.
  • Mostraremos en consola el valor y el id del item seleccionado.

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

Codigo: https://github.com/programadornovato/CursoKotlin/commit/55a2d80fcf30be874588e0e5372df349a4e2eb65

import java.awt.*
import java.awt.event.KeyEvent
import javax.swing.*

class Ventana(titulo:String?):JFrame(titulo){
    var panel=ArrayList<JPanel>()
    var etiqueta=ArrayList<JLabel>()
    var num=4
    var botonSwing:JButton?=null
    var botonAWT:Button?=null
    var contenedor=JPanel()
    var radioBoton=ArrayList<JRadioButton>()
    init {
        //num=JOptionPane.showInputDialog("Humano ingresa la cantidad de paneles").toInt()
        var d=Dimension(num*150,500)
        this.size=d
        defaultCloseOperation=WindowConstants.EXIT_ON_CLOSE
        this.contentPane.add(contenedor)
        contenedor.layout=null
        //this.setLocation(500,500)
        //agregarPanel()
        //agregarEtiquetas()
        //agregaBoton()
        //agregarRadio()
        //agregarCampoTexto()
        //agregarAreaTexto()
        agregaListaDesplegable()
    }
    fun agregaListaDesplegable(){
        var lenguajes= arrayOf<String>(
                "Kotlin",
                "Java",
                "C++",
                "Python",
                "Javascript"
        )
        var listaDesplegable=JComboBox(lenguajes)
        listaDesplegable.setBounds(10,10,300,60)
        listaDesplegable.addItem("VisualBasic")
        //listaDesplegable.selectedIndex=3
        listaDesplegable.selectedItem="C++"
        println("Index seleccionado=${listaDesplegable.selectedIndex}")
        println("Valor seleccionado=${listaDesplegable.selectedItem}")
        contenedor.add(listaDesplegable)
    }
    fun agregarAreaTexto(){
        //contenedor.layout=null
        var areaTexto=JTextArea()
        areaTexto.text="Humano aqui va el texto\nHumano aqui va mas texto\nHumano aqui va el texto\n"
        areaTexto.append("Humano aqui va mas texto\n")
        areaTexto.append("Humano aqui va mas texto\n")
        areaTexto.append("Humano aqui va mas texto\n")
        areaTexto.append("Humano aqui va mas texto\n")
        areaTexto.append("Humano aqui va mas texto\n")
        areaTexto.append("Humano aqui va mas texto\n")
        areaTexto.columns=25
        areaTexto.rows=7
        //areaTexto.setBounds(20,20,50,50)
        var scroll=JScrollPane(areaTexto)
        //scroll.setBounds(20,20,50,50)
        areaTexto.isEnabled=true
        areaTexto.isEditable=false

        contenedor.add(scroll)
    }
    fun agregarCampoTexto(){
        var campoTexto1=JTextField()
        campoTexto1.text="HHHHHHHHHHHHHHHHHHHH"
        campoTexto1.font=Font(Font.MONOSPACED,Font.BOLD,20)
        //campoTexto1.setBounds(100,100,200,20)
        campoTexto1.columns=25
        contenedor.add(campoTexto1)

        var campoTexto2=JTextField()
        campoTexto2.text="HHHHHHHHHHHHHHHHHHHH"
        campoTexto2.font=Font(Font.MONOSPACED,Font.BOLD,30)
        //campoTexto2.setBounds(100,100,200,20)
        campoTexto2.columns=25
        campoTexto2.background=Color.BLUE
        campoTexto2.foreground=Color.YELLOW
        contenedor.add(campoTexto2)

    }
    fun agregarRadio(){
        var grupo=ButtonGroup()
        var textos= arrayOf(
                "Humano dame click",
                "No,no,no humano dame click a mi",
                "Humano dame click y unete a lado hocuro de fuerza"
        )
        for (i in textos.indices){
            radioBoton.add(JRadioButton())
            radioBoton[i].text=textos[i]
            radioBoton[i].setBounds(10,100 + i *50,550,50)
            radioBoton[i].font=Font(Font.MONOSPACED,Font.BOLD,16)
            grupo.add(radioBoton[i])
            contenedor.add(radioBoton[i])
            if(i==2){
                radioBoton[i].isSelected=true
            }
        }
        /*
        var rd=JRadioButton("Humano dame click")
        rd.setBounds(100,100,200,20)
        rd.isEnabled=true
        contenedor.add(rd)
        */    }
    fun agregaBoton(){
        var logo=ImageIcon("src/images/kotlin.png")
        var logoMin=ImageIcon(logo.image.getScaledInstance(30,30, Image.SCALE_DEFAULT))

        var contenedor=JPanel()
        this.contentPane.add(contenedor)
        contenedor.layout=null
        botonSwing= JButton("Dame like!!!!",logoMin)
        contenedor.add(botonSwing)
        botonSwing!!.text="Que me des liiikeee!!!!"
        botonSwing!!.setBounds(100,100,300,40)
        botonSwing!!.isEnabled=true
        //botonSwing!!.mnemonic='F'.toInt()
        botonSwing!!.mnemonic=KeyEvent.VK_F
        botonSwing!!.icon=ImageIcon(ImageIcon("src/images/like.png").image.getScaledInstance(20,20,Image.SCALE_FAST))
        botonSwing!!.font= Font(Font.MONOSPACED,Font.ITALIC,12)
        botonSwing!!.foreground=Color.BLACK
        botonSwing!!.background=Color.WHITE

        botonAWT= Button("Soy AWT feo pero dame like!!!")
        contenedor.add(botonAWT)
        botonAWT!!.setBounds(100,200,180,40)
        botonAWT!!.label="Que me de like!!!!"
        botonAWT!!.isEnabled=true

    }
    fun agregarPanel(){

        var contenedor=JPanel()
        contenedor.background= Color.red
        this.contentPane.add(contenedor)
        for (i in 0 until num){
            panel.add(JPanel())
            contenedor.add(panel[i])
            panel[i].background= Color(i*50,i*50,i*50)
        }
        contenedor.layout=BoxLayout(contenedor,BoxLayout.X_AXIS)
    }
    fun agregarEtiquetas(){
        var logo=ImageIcon("src/images/kotlin.png")
        var logoMin=ImageIcon(logo.image.getScaledInstance(60,60, Image.SCALE_DEFAULT))
        for (i in 0 until num){
            etiqueta.add(JLabel("Hola ${i+1}",logoMin,SwingConstants.LEFT))
            etiqueta[i].foreground=Color.white
            panel[i].add(etiqueta[i])
        }
    }
}

🎦 Lista de reproducción de este curso: https://www.youtube.com/playlist?list=PLCTD_CpMeEKSjzbsW_zmVNz23GyOVsdbS
🎦 Mismo tutorial pero en Java: https://youtu.be/xNelBiF7z7A
🎦 [Curso] Java Netbeans Completo☕: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT-qEHGqZH3fkBgXH4GOTF

🔗 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

Eugenio Chaparro

Entradas recientes

Editar código de un módulo en Dolibarr [04]

Editar código de un módulo en Dolibarr [04]

En este tutorial vamos editar el código de nuestro módulo personas para poder personalizar algunas…

4 meses hace
Crear un sub_módulo en Dolibarr [03]

Crear un sub_módulo en Dolibarr [03]

En este tutorial vamos a crear un sub módulo llamado seguridad que será muy parecido…

4 meses hace
Modificar un módulo en Dolibarr [02]

Modificar un módulo en Dolibarr [02]

En este tutorial aprenderemos a editar el objeto personas del modulo persona que creamos en…

4 meses hace
Constructor de módulos en Dolibarr

Constructor de módulos en Dolibarr

Como mencionamos anteriormente Dolibarr es un proyecto realizado sobre la base de una política clara:…

4 meses hace
Tickets en Dolibarr [19]

Tickets en Dolibarr [19]

Los ticket en dolibarr nos ayudan a comunicar inconveniente en nuestros productos y servicios dentro…

4 meses hace
Agenda en Dolibarr [18]

Agenda en Dolibarr [18]

Las agendas en dolibarr nos ayudan a ver las actividades realizadas en proceso y por…

4 meses hace