[{"data":1,"prerenderedAt":960},["ShallowReactive",2],{"navigation_docs":3,"-gui-elementos-visuales":298,"-gui-elementos-visuales-surround":955},[4,18,70,105,149,178,212,257],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Evaluación","\u002Fintroduction","1.introduction\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Método de Evaluación","i-iconamoon-cheque-bold",{"title":13,"path":14,"stem":15,"icon":16},"Plataforma de Aprendizaje","\u002Fintroduction\u002Fplataforma","1.introduction\u002F2.plataforma","i-lucide-book-marked","i-lucide-house",{"title":19,"path":20,"stem":21,"children":22,"icon":25},"Interfaz Gráfica de Usuario","\u002Fgui","2.gui\u002F01.index",[23,26,30,34,38,42,46,50,54,58,62,66],{"title":24,"path":20,"stem":21,"icon":25},"¿Qué es una Interfaz Gráfica de Usuario (GUI)?","i-carbon-gui-management",{"title":27,"path":28,"stem":29,"icon":25},"Creación de Interfaces Gráficas de Usuario (GUI)","\u002Fgui\u002Fbuild-gui","2.gui\u002F02.build-gui",{"title":31,"path":32,"stem":33,"icon":25},"Componentes Básicos de Swing","\u002Fgui\u002Fcomponentes-basicos","2.gui\u002F03.componentes-basicos",{"title":35,"path":36,"stem":37},"El componente JFrame","\u002Fgui\u002Fjframe","2.gui\u002F04.jframe",{"title":39,"path":40,"stem":41},"El componente JPanel","\u002Fgui\u002Fjpanel","2.gui\u002F05.jpanel",{"title":43,"path":44,"stem":45},"El componente JButton","\u002Fgui\u002Fjbutton","2.gui\u002F06.jbutton",{"title":47,"path":48,"stem":49,"icon":25},"Elementos de texto en interfaces gráficas con Swing","\u002Fgui\u002Ftext","2.gui\u002F07.text",{"title":51,"path":52,"stem":53},"Elementos Visuales","\u002Fgui\u002Felementos-visuales","2.gui\u002F08.elementos-visuales",{"title":55,"path":56,"stem":57,"icon":25},"Eventos en Swing","\u002Fgui\u002Feventos","2.gui\u002F09.eventos",{"title":59,"path":60,"stem":61,"icon":25},"Controles en Swing","\u002Fgui\u002Fcontroles","2.gui\u002F10.controles",{"title":63,"path":64,"stem":65,"icon":25},"Atributos Comunes de los Componentes de Diseño","\u002Fgui\u002Fatributos-comunes","2.gui\u002F11.atributos-comunes",{"title":67,"path":68,"stem":69,"icon":25},"Layouts","\u002Fgui\u002Flayout","2.gui\u002F12.layout",{"title":71,"icon":25,"path":72,"stem":73,"children":74,"page":104},"Personalización","\u002Fpersonalizacion","3.personalizacion",[75,79,84,88,92,96,100],{"title":76,"path":77,"stem":78},"Jerarquía de clases en Swing","\u002Fpersonalizacion\u002Fjerarquia","3.personalizacion\u002F01.jerarquia",{"title":80,"path":81,"stem":82,"icon":83},"Personalización Inicial de Componentes Swing","\u002Fpersonalizacion\u002Fpersonalizacion-inicial","3.personalizacion\u002F02.personalizacion-inicial","i-carbon-palette",{"title":85,"path":86,"stem":87,"icon":83},"Tema y Personalización Avanzada en Swing","\u002Fpersonalizacion\u002Ftheme","3.personalizacion\u002F03.theme",{"title":89,"path":90,"stem":91,"icon":83},"Pintando en Swing","\u002Fpersonalizacion\u002Fpaint","3.personalizacion\u002F04.paint",{"title":93,"path":94,"stem":95,"icon":83},"Mi Tema 1: Comenzando con la Personalización","\u002Fpersonalizacion\u002Ftheme-start","3.personalizacion\u002F05.theme-start",{"title":97,"path":98,"stem":99,"icon":83},"UI Delegates: Personalizando la Apariencia de los Componentes","\u002Fpersonalizacion\u002Fui-delegates","3.personalizacion\u002F06.ui-delegates",{"title":101,"path":102,"stem":103,"icon":83},"Empleado delegadores de UI para personalizar la apariencia de los componentes","\u002Fpersonalizacion\u002Ftheme-02","3.personalizacion\u002F07.theme-02",false,{"title":106,"path":107,"stem":108,"children":109,"icon":148},"Programación concurrente","\u002Fconcurrencia","4.concurrencia\u002F01.index",[110,112,116,120,124,128,132,136,140,144],{"title":111,"path":107,"stem":108,"icon":83},"¿Qué es la concurrencia?",{"title":113,"path":114,"stem":115,"icon":83},"Unidades de Ejecución","\u002Fconcurrencia\u002Funidades-ejecucion","4.concurrencia\u002F02.unidades-ejecucion",{"title":117,"path":118,"stem":119,"icon":83},"Programa de flujo único y de flujo múltiple","\u002Fconcurrencia\u002Fflujos","4.concurrencia\u002F03.flujos",{"title":121,"path":122,"stem":123,"icon":83},"Hilos con Thread y Runnable","\u002Fconcurrencia\u002Fthread-runnable","4.concurrencia\u002F04.thread-runnable",{"title":125,"path":126,"stem":127},"Paralelismo V.S. Concurrencia","\u002Fconcurrencia\u002Fparalelismo","4.concurrencia\u002F05.paralelismo",{"title":129,"path":130,"stem":131,"icon":83},"Problemas clásicos de concurrencia","\u002Fconcurrencia\u002Fproblemas","4.concurrencia\u002F06.problemas",{"title":133,"path":134,"stem":135,"icon":83},"Emulando condiciones de carrera en Java","\u002Fconcurrencia\u002Fcondiciones-carrera","4.concurrencia\u002F07.condiciones-carrera",{"title":137,"path":138,"stem":139,"icon":83},"Semáforos en Java","\u002Fconcurrencia\u002Fsemaforos","4.concurrencia\u002F08.semaforos",{"title":141,"path":142,"stem":143,"icon":83},"La clase Timer en Java Swing","\u002Fconcurrencia\u002Ftimer","4.concurrencia\u002F09.timer",{"title":145,"path":146,"stem":147,"icon":83},"Algoritmos de ordenamiento de procesos","\u002Fconcurrencia\u002Falgoritmos-procesos","4.concurrencia\u002F10.algoritmos-procesos","i-carbon-parallel-groups",{"title":150,"path":151,"stem":152,"children":153,"icon":177},"Acceso a datos","\u002Fdatos","5.datos\u002F01.index",[154,157,161,165,169,173],{"title":155,"path":151,"stem":152,"icon":156},"Java y las bases de datos","i-carbon-database",{"title":158,"path":159,"stem":160},"Cliente Servidor","\u002Fdatos\u002Fcliente-servidor","5.datos\u002F02.cliente-servidor",{"title":162,"path":163,"stem":164},"CRUD","\u002Fdatos\u002Fcrud","5.datos\u002F03.crud",{"title":166,"path":167,"stem":168},"Sentencias Preparadas con JDBC","\u002Fdatos\u002Fsentencia-preparada","5.datos\u002F04.sentencia-preparada",{"title":170,"path":171,"stem":172},"DAO (Data Access Object)","\u002Fdatos\u002Fdao","5.datos\u002F05.dao",{"title":174,"path":175,"stem":176},"Usando Hibernate ORM","\u002Fdatos\u002Form","5.datos\u002F06.orm","i-gravity-ui-database-fill",{"title":179,"path":180,"stem":181,"children":182,"icon":211},"Programación móvil","\u002Fmovil","6.movil\u002F01.index",[183,186,191,195,199,203,207],{"title":184,"path":180,"stem":181,"icon":185},"¿Qué es Android y Kotlin?","i-carbon-mobile",{"title":187,"path":188,"stem":189,"icon":190},"¿Qué es Android Studio?","\u002Fmovil\u002Fandroid-studio","6.movil\u002F02.android-studio","i-carbon-application",{"title":192,"path":193,"stem":194,"icon":190},"¿Qué es Jetpack Compose?","\u002Fmovil\u002Fjetpack-compose","6.movil\u002F03.jetpack-compose",{"title":196,"path":197,"stem":198},"Filas y Columnas con Jetpack Compose","\u002Fmovil\u002Ffilas-columnas","6.movil\u002F04.filas-columnas",{"title":200,"path":201,"stem":202,"icon":190},"Componentes Básicos en Jetpack Compose","\u002Fmovil\u002Fcomponentes-basicos","6.movil\u002F05.componentes-basicos",{"title":204,"path":205,"stem":206,"icon":190},"Las Intenciones en Android con Jetpack Compose","\u002Fmovil\u002Fintentions","6.movil\u002F06.intentions",{"title":208,"path":209,"stem":210,"icon":190},"Navegación en Android con Jetpack Compose","\u002Fmovil\u002Fnavegacion","6.movil\u002F07.navegacion","phone_android",{"title":213,"icon":25,"path":214,"stem":215,"children":216,"page":104},"Ejemplos","\u002Fejemplos","7.ejemplos",[217,221,225,229,233,237,241,245,249,253],{"title":218,"path":219,"stem":220},"Ejemplo 01: Creando un validador abstracto de expresiones","\u002Fejemplos\u002Fejemplo-01","7.ejemplos\u002F01.ejemplo-01",{"title":222,"path":223,"stem":224},"Ejemplo 02: Diferencias de validar un JTextField y un JFormattedTextField","\u002Fejemplos\u002Fejemplo-02","7.ejemplos\u002F02.ejemplo-02",{"title":226,"path":227,"stem":228},"Ejemplo 03: Creando una Aplicación con GUI en Java Swing","\u002Fejemplos\u002Fejemplo-03","7.ejemplos\u002F03.ejemplo-03",{"title":230,"path":231,"stem":232},"Ejemplo 4: Estilizando componentes Swing con Delegadores","\u002Fejemplos\u002Fejemplo-04","7.ejemplos\u002F04.ejemplo-04",{"title":234,"path":235,"stem":236,"icon":83},"Ejemplo 5: Uso de Hilos con Thread y Runnable","\u002Fejemplos\u002Fejemplo-05","7.ejemplos\u002F05.ejemplo-05",{"title":238,"path":239,"stem":240,"icon":83},"Ejemplo 06: Manejando Hilos de formas Diferentes en Java","\u002Fejemplos\u002Fejemplo-06","7.ejemplos\u002F06.ejemplo-06",{"title":242,"path":243,"stem":244,"icon":83},"Ejemplo 7: Condiciones de carrera en Java","\u002Fejemplos\u002Fejemplo-07","7.ejemplos\u002F07.ejemplo-07",{"title":246,"path":247,"stem":248,"icon":83},"Ejemplo 8: Control de acceso a recursos compartidos con semáforos","\u002Fejemplos\u002Fejemplo-08","7.ejemplos\u002F08.ejemplo-08",{"title":250,"path":251,"stem":252,"icon":83},"Ejemplo 9: El restaurante y los pedidos","\u002Fejemplos\u002Fejemplo-09","7.ejemplos\u002F09.ejemplo-09",{"title":254,"path":255,"stem":256},"Ejemplo 10: Proceso FIFO (First In, First Out) con Semáforos y Swing","\u002Fejemplos\u002Fejemplo-10","7.ejemplos\u002F10.ejemplo-10",{"title":258,"icon":25,"path":259,"stem":260,"children":261,"page":104},"Actividades","\u002Factividades","8.actividades",[262,266,270,274,278,282,286,290,294],{"title":263,"path":264,"stem":265,"icon":25},"Actividad 1: Introducción al diseño de interfaces","\u002Factividades\u002Fact-01","8.actividades\u002F01.act-01",{"title":267,"path":268,"stem":269,"icon":25},"Actividad 2: Diseño de wireframes y prototipos","\u002Factividades\u002Fact-02","8.actividades\u002F02.act-02",{"title":271,"path":272,"stem":273,"icon":25},"Actividad 3: Propuesta de Proyecto y Wireframe inicial","\u002Factividades\u002Fact-03","8.actividades\u002F03.act-03",{"title":275,"path":276,"stem":277,"icon":83},"Actividad 4: Temas y Componentes Personalizados en Swing","\u002Factividades\u002Fact-04","8.actividades\u002F04.act-04",{"title":279,"path":280,"stem":281,"icon":83},"Actividad 5: Explicando la Concurrencia a un Niño de 5 Años","\u002Factividades\u002Fact-05","8.actividades\u002F05.act-05",{"title":283,"path":284,"stem":285,"icon":83},"Actividad 6: Simulación de una cocina con múltiples chefs (hilos)","\u002Factividades\u002Fact-06","8.actividades\u002F06.act-06",{"title":287,"path":288,"stem":289,"icon":83},"Actividad 7: Sistema de retiro bancario","\u002Factividades\u002Fact-07","8.actividades\u002F07.act-07",{"title":291,"path":292,"stem":293,"icon":83},"Actividad 8: Simulación de Round Robin con hilos e Interfaz Gráfica","\u002Factividades\u002Fact-08","8.actividades\u002F08.act-08",{"title":295,"path":296,"stem":297,"icon":83},"Actividad 9: CRUD con Hibernate y Swing","\u002Factividades\u002Fact-09","8.actividades\u002F09.act-09",{"id":299,"title":51,"body":300,"description":948,"extension":949,"links":950,"meta":951,"navigation":952,"path":52,"seo":953,"stem":53,"__hash__":954},"docs\u002F2.gui\u002F08.elementos-visuales.md",{"type":301,"value":302,"toc":941},"minimark",[303,312,317,320,391,398,455,459,462,573,577,588,640,647,789,795,842,845,849,860,923,930,934,937],[304,305,306,307,311],"p",{},"Hemos visto cómo crear ventanas y manejar eventos en una interfaz gráfica. Ahora, profundicemos en los ",[308,309,310],"strong",{},"elementos visuales"," que podemos utilizar para construir interfaces atractivas y funcionales.",[313,314,316],"h2",{"id":315},"bordes","Bordes",[304,318,319],{},"Dentro de Java Swing, los bordes son componentes visuales que pueden ser aplicados a otros componentes para mejorar su apariencia. Los bordes pueden ser simples líneas, bordes con sombras, bordes con títulos, entre otros. Aquí hay algunos tipos comunes de bordes en Swing:",[321,322,323,336],"table",{},[324,325,326],"thead",{},[327,328,329,333],"tr",{},[330,331,332],"th",{},"Tipo de Borde",[330,334,335],{},"Descripción",[337,338,339,351,361,371,381],"tbody",{},[327,340,341,348],{},[342,343,344],"td",{},[345,346,347],"code",{},"LineBorder",[342,349,350],{},"Un borde simple de línea con un color y grosor especificados.",[327,352,353,358],{},[342,354,355],{},[345,356,357],{},"EtchedBorder",[342,359,360],{},"Un borde con un efecto grabado, que puede ser levantado o hundido.",[327,362,363,368],{},[342,364,365],{},[345,366,367],{},"TitledBorder",[342,369,370],{},"Un borde que incluye un título en la parte superior.",[327,372,373,378],{},[342,374,375],{},[345,376,377],{},"BevelBorder",[342,379,380],{},"Un borde con un efecto biselado, que puede ser levantado o hundido.",[327,382,383,388],{},[342,384,385],{},[345,386,387],{},"EmptyBorder",[342,389,390],{},"Un borde invisible que proporciona espacio alrededor del componente.",[304,392,393,394,397],{},"Para aplicar un borde a un componente, puedes usar el método ",[345,395,396],{},"setBorder()"," del componente. Por ejemplo:",[399,400,405],"pre",{"className":401,"code":402,"language":403,"meta":404,"style":404},"language-java shiki shiki-themes github-dark","JPanel panel = new JPanel();\npanel.setBorder(BorderFactory.createTitledBorder(\"Mi Panel\"));\n","java","",[345,406,407,430],{"__ignoreMap":404},[408,409,412,416,420,423,427],"span",{"class":410,"line":411},"line",1,[408,413,415],{"class":414},"s95oV","JPanel panel ",[408,417,419],{"class":418},"snl16","=",[408,421,422],{"class":418}," new",[408,424,426],{"class":425},"svObZ"," JPanel",[408,428,429],{"class":414},"();\n",[408,431,433,436,439,442,445,448,452],{"class":410,"line":432},2,[408,434,435],{"class":414},"panel.",[408,437,438],{"class":425},"setBorder",[408,440,441],{"class":414},"(BorderFactory.",[408,443,444],{"class":425},"createTitledBorder",[408,446,447],{"class":414},"(",[408,449,451],{"class":450},"sU2Wk","\"Mi Panel\"",[408,453,454],{"class":414},"));\n",[313,456,458],{"id":457},"border-classes","Border Classes",[304,460,461],{},"Java Swing proporciona varias clases para crear bordes predefinidos. Aquí hay algunos ejemplos de cómo crear diferentes tipos de bordes:",[399,463,465],{"className":401,"code":464,"language":403,"meta":404,"style":404},"LineBorder lineBorder = new LineBorder(Color.BLACK, 2);\nEtchedBorder etchedBorder = new EtchedBorder(EtchedBorder.RAISED);\nTitledBorder titledBorder = new TitledBorder(\"Título del Borde\");\nBevelBorder bevelBorder = new BevelBorder(BevelBorder.LOWERED);\nEmptyBorder emptyBorder = new EmptyBorder(10, 10, 10, 10);\n",[345,466,467,489,504,524,540],{"__ignoreMap":404},[408,468,469,472,474,476,479,482,486],{"class":410,"line":411},[408,470,471],{"class":414},"LineBorder lineBorder ",[408,473,419],{"class":418},[408,475,422],{"class":418},[408,477,478],{"class":425}," LineBorder",[408,480,481],{"class":414},"(Color.BLACK, ",[408,483,485],{"class":484},"sDLfK","2",[408,487,488],{"class":414},");\n",[408,490,491,494,496,498,501],{"class":410,"line":432},[408,492,493],{"class":414},"EtchedBorder etchedBorder ",[408,495,419],{"class":418},[408,497,422],{"class":418},[408,499,500],{"class":425}," EtchedBorder",[408,502,503],{"class":414},"(EtchedBorder.RAISED);\n",[408,505,507,510,512,514,517,519,522],{"class":410,"line":506},3,[408,508,509],{"class":414},"TitledBorder titledBorder ",[408,511,419],{"class":418},[408,513,422],{"class":418},[408,515,516],{"class":425}," TitledBorder",[408,518,447],{"class":414},[408,520,521],{"class":450},"\"Título del Borde\"",[408,523,488],{"class":414},[408,525,527,530,532,534,537],{"class":410,"line":526},4,[408,528,529],{"class":414},"BevelBorder bevelBorder ",[408,531,419],{"class":418},[408,533,422],{"class":418},[408,535,536],{"class":425}," BevelBorder",[408,538,539],{"class":414},"(BevelBorder.LOWERED);\n",[408,541,543,546,548,550,553,555,558,561,563,565,567,569,571],{"class":410,"line":542},5,[408,544,545],{"class":414},"EmptyBorder emptyBorder ",[408,547,419],{"class":418},[408,549,422],{"class":418},[408,551,552],{"class":425}," EmptyBorder",[408,554,447],{"class":414},[408,556,557],{"class":484},"10",[408,559,560],{"class":414},", ",[408,562,557],{"class":484},[408,564,560],{"class":414},[408,566,557],{"class":484},[408,568,560],{"class":414},[408,570,557],{"class":484},[408,572,488],{"class":414},[313,574,576],{"id":575},"colores","Colores",[304,578,579,580,583,584,587],{},"Los colores son fundamentales para el diseño de interfaces gráficas. En Java Swing, puedes establecer colores de fondo y primer plano (texto) para los componentes utilizando los métodos ",[345,581,582],{},"setBackground()"," y ",[345,585,586],{},"setForeground()",". Aquí hay un ejemplo:",[399,589,591],{"className":401,"code":590,"language":403,"meta":404,"style":404},"JButton button = new JButton(\"Mi Botón\");\nbutton.setBackground(Color.BLUE); \u002F\u002F Color de fondo azul\nbutton.setForeground(Color.WHITE); \u002F\u002F Color de texto blanco\n",[345,592,593,612,627],{"__ignoreMap":404},[408,594,595,598,600,602,605,607,610],{"class":410,"line":411},[408,596,597],{"class":414},"JButton button ",[408,599,419],{"class":418},[408,601,422],{"class":418},[408,603,604],{"class":425}," JButton",[408,606,447],{"class":414},[408,608,609],{"class":450},"\"Mi Botón\"",[408,611,488],{"class":414},[408,613,614,617,620,623],{"class":410,"line":432},[408,615,616],{"class":414},"button.",[408,618,619],{"class":425},"setBackground",[408,621,622],{"class":414},"(Color.BLUE); ",[408,624,626],{"class":625},"sAwPA","\u002F\u002F Color de fondo azul\n",[408,628,629,631,634,637],{"class":410,"line":506},[408,630,616],{"class":414},[408,632,633],{"class":425},"setForeground",[408,635,636],{"class":414},"(Color.WHITE); ",[408,638,639],{"class":625},"\u002F\u002F Color de texto blanco\n",[304,641,642,643,646],{},"La lista de colores predefinidos en la clase ",[345,644,645],{},"Color"," incluye:",[321,648,649,657],{},[324,650,651],{},[327,652,653,655],{},[330,654,645],{},[330,656,335],{},[337,658,659,669,679,689,699,709,719,729,739,749,759,769,779],{},[327,660,661,666],{},[342,662,663],{},[345,664,665],{},"BLACK",[342,667,668],{},"Negro",[327,670,671,676],{},[342,672,673],{},[345,674,675],{},"BLUE",[342,677,678],{},"Azul",[327,680,681,686],{},[342,682,683],{},[345,684,685],{},"CYAN",[342,687,688],{},"Cian",[327,690,691,696],{},[342,692,693],{},[345,694,695],{},"DARK_GRAY",[342,697,698],{},"Gris Oscuro",[327,700,701,706],{},[342,702,703],{},[345,704,705],{},"GRAY",[342,707,708],{},"Gris",[327,710,711,716],{},[342,712,713],{},[345,714,715],{},"GREEN",[342,717,718],{},"Verde",[327,720,721,726],{},[342,722,723],{},[345,724,725],{},"LIGHT_GRAY",[342,727,728],{},"Gris Claro",[327,730,731,736],{},[342,732,733],{},[345,734,735],{},"MAGENTA",[342,737,738],{},"Magenta",[327,740,741,746],{},[342,742,743],{},[345,744,745],{},"ORANGE",[342,747,748],{},"Naranja",[327,750,751,756],{},[342,752,753],{},[345,754,755],{},"PINK",[342,757,758],{},"Rosa",[327,760,761,766],{},[342,762,763],{},[345,764,765],{},"RED",[342,767,768],{},"Rojo",[327,770,771,776],{},[342,772,773],{},[345,774,775],{},"WHITE",[342,777,778],{},"Blanco",[327,780,781,786],{},[342,782,783],{},[345,784,785],{},"YELLOW",[342,787,788],{},"Amarillo",[304,790,791,792,794],{},"Además, puedes crear colores personalizados utilizando la clase ",[345,793,645],{}," con valores RGB:",[399,796,798],{"className":401,"code":797,"language":403,"meta":404,"style":404},"Color customColor = new Color(255, 100, 50); \u002F\u002F Color personalizado\nbutton.setBackground(customColor);\n",[345,799,800,833],{"__ignoreMap":404},[408,801,802,805,807,809,812,814,817,819,822,824,827,830],{"class":410,"line":411},[408,803,804],{"class":414},"Color customColor ",[408,806,419],{"class":418},[408,808,422],{"class":418},[408,810,811],{"class":425}," Color",[408,813,447],{"class":414},[408,815,816],{"class":484},"255",[408,818,560],{"class":414},[408,820,821],{"class":484},"100",[408,823,560],{"class":414},[408,825,826],{"class":484},"50",[408,828,829],{"class":414},"); ",[408,831,832],{"class":625},"\u002F\u002F Color personalizado\n",[408,834,835,837,839],{"class":410,"line":432},[408,836,616],{"class":414},[408,838,619],{"class":425},[408,840,841],{"class":414},"(customColor);\n",[304,843,844],{},"Es importante destacar que el uso adecuado de colores puede mejorar la usabilidad y la estética de tu interfaz gráfica.",[313,846,848],{"id":847},"fuentes","Fuentes",[304,850,851,852,855,856,859],{},"Las fuentes son esenciales para la presentación del texto en una interfaz gráfica. En Java Swing, puedes personalizar la fuente de los componentes utilizando la clase ",[345,853,854],{},"Font",". Puedes especificar el nombre de la fuente, el estilo (normal, negrita, cursiva) y el tamaño. Aquí hay un ejemplo de cómo establecer una fuente personalizada para un ",[345,857,858],{},"JLabel",":",[399,861,863],{"className":401,"code":862,"language":403,"meta":404,"style":404},"JLabel label = new JLabel(\"Texto con Fuente Personalizada\");\nFont customFont = new Font(\"Arial\", Font.BOLD, 16); \u002F\u002F Fuente Arial,\nlabel.setFont(customFont);\n",[345,864,865,884,912],{"__ignoreMap":404},[408,866,867,870,872,874,877,879,882],{"class":410,"line":411},[408,868,869],{"class":414},"JLabel label ",[408,871,419],{"class":418},[408,873,422],{"class":418},[408,875,876],{"class":425}," JLabel",[408,878,447],{"class":414},[408,880,881],{"class":450},"\"Texto con Fuente Personalizada\"",[408,883,488],{"class":414},[408,885,886,889,891,893,896,898,901,904,907,909],{"class":410,"line":432},[408,887,888],{"class":414},"Font customFont ",[408,890,419],{"class":418},[408,892,422],{"class":418},[408,894,895],{"class":425}," Font",[408,897,447],{"class":414},[408,899,900],{"class":450},"\"Arial\"",[408,902,903],{"class":414},", Font.BOLD, ",[408,905,906],{"class":484},"16",[408,908,829],{"class":414},[408,910,911],{"class":625},"\u002F\u002F Fuente Arial,\n",[408,913,914,917,920],{"class":410,"line":506},[408,915,916],{"class":414},"label.",[408,918,919],{"class":425},"setFont",[408,921,922],{"class":414},"(customFont);\n",[304,924,925,926,929],{},"Además, puedes obtener las fuentes disponibles en el sistema utilizando el método ",[345,927,928],{},"GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()",".",[313,931,933],{"id":932},"conclusión","Conclusión",[304,935,936],{},"Estos elementos visuales son herramientas poderosas para mejorar la apariencia y funcionalidad de tus interfaces gráficas. Experimenta con diferentes combinaciones de bordes, colores y fuentes para crear diseños atractivos y efectivos. En la próxima sección, exploraremos cómo manejar eventos de usuario para hacer que tu interfaz sea interactiva.",[938,939,940],"style",{},"html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":404,"searchDepth":432,"depth":432,"links":942},[943,944,945,946,947],{"id":315,"depth":432,"text":316},{"id":457,"depth":432,"text":458},{"id":575,"depth":432,"text":576},{"id":847,"depth":432,"text":848},{"id":932,"depth":432,"text":933},"Aprende sobre los diferentes elementos visuales que puedes utilizar en tus proyectos de desarrollo de interfaces gráficas.","md",null,{"editButton":104},true,{"title":51,"description":948},"7lcT3kGiZaKddzZWkDPZzZkWH03wr_mKTTciyBfwesg",[956,958],{"title":47,"path":48,"stem":49,"description":957,"icon":25,"children":-1},"Aprende a utilizar componentes de texto en interfaces gráficas utilizando la biblioteca Swing de Java.",{"title":55,"path":56,"stem":57,"description":959,"icon":25,"children":-1},"Aprende a manejar eventos en aplicaciones Swing utilizando ActionListener y otros listeners.",1775101370259]