Área de Texto con scroll en Kotlin (JTextArea)(Curso de Kotlin desde cero [83])
En este tutorial vamos a crear un Área de Texto con scroll en Kotlin (JTextArea) y jugaremos con sus propiedades como el texto, las columnas y filas. También aprenderemos a colocar un scroll (JScrollPane).
- Crear JTextArea sin parámetros en el constructor.
- Insertamos texto en el JTextArea.
- Veremos la diferencia entre isEnabled y isEditable
- Crearemos un JScrollPane donde insertaremos nuestro JTextArea.
🔗 Librerias de Java swing: https://es.wikipedia.org/wiki/Swing_(biblioteca_gr%C3%A1fica)
Codigo: https://github.com/programadornovato/CursoKotlin/commit/c0acdf7f01314c38788a42ba9e90470c0e7954eb
//.idea/artifacts/CursoKotlin_jar.xml <component name="ArtifactManager"> <artifact type="jar" name="CursoKotlin:jar"> <output-path>$PROJECT_DIR$/out/artifacts/CursoKotlin_jar</output-path> <root id="archive" name="CursoKotlin.jar"> <element id="module-output" name="CursoKotlin" /> <element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar" path-in-jar="/" /> <element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar" path-in-jar="/" /> <element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-test.jar" path-in-jar="/" /> <element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk7.jar" path-in-jar="/" /> <element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk8.jar" path-in-jar="/" /> </root> </artifact> </component> //src/Ventana.kt 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() } 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
🎦 [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 >>