[{"data":1,"prerenderedAt":799},["ShallowReactive",2],{"navigation_docs":3,"-archivos-ui-iniciando":412,"-archivos-ui-iniciando-surround":794},[4,18,43,118,160,200,231,320,346],{"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,"icon":20,"path":21,"stem":22,"children":23,"page":42},"Entorno de desarrollo","i-codicon-edit-code","\u002Fide","2.ide",[24,28,33,37],{"title":25,"path":26,"stem":27,"icon":20},"¿Qué es un IDE?","\u002Fide\u002Fentorno","2.ide\u002F1.entorno",{"title":29,"path":30,"stem":31,"icon":32},"Estructura de un Proyecto","\u002Fide\u002Festructura","2.ide\u002F2.estructura","i-clarity-tree-view-line",{"title":34,"path":35,"stem":36,"icon":20},"La compilación en un IDE","\u002Fide\u002Fcompilacion","2.ide\u002F3.compilacion",{"title":38,"path":39,"stem":40,"icon":41},"Depuración de Código","\u002Fide\u002Fdepurar","2.ide\u002F4.depurar","i-lucide-bug",false,{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":42},"Clases y Objetos","i-catppuccin-java-class","\u002Fclases-objetos","3.clases-objetos",[49,53,57,62,66,70,74,78,83,88,92,96,101,106,110,114],{"title":50,"path":51,"stem":52},"Repaso previo a Clases y Objetos","\u002Fclases-objetos\u002Fpreview","3.clases-objetos\u002F00.preview",{"title":54,"path":55,"stem":56,"icon":45},"¿Qué es la Programación Orientada a Objetos (POO)?","\u002Fclases-objetos\u002Fpoo","3.clases-objetos\u002F01.poo",{"title":58,"path":59,"stem":60,"icon":61},"Diagramas de Clases y Objetos","\u002Fclases-objetos\u002Fdiagramas","3.clases-objetos\u002F02.diagramas","i-devicon-uml",{"title":63,"path":64,"stem":65,"icon":45},"Las Clases","\u002Fclases-objetos\u002Fclases","3.clases-objetos\u002F03.clases",{"title":67,"path":68,"stem":69,"icon":45},"Ámbito y Visibilidad","\u002Fclases-objetos\u002Fambito","3.clases-objetos\u002F04.ambito",{"title":71,"path":72,"stem":73,"icon":45},"Declaración e Instanciación de Objetos","\u002Fclases-objetos\u002Fobjetos","3.clases-objetos\u002F05.objetos",{"title":75,"path":76,"stem":77,"icon":45},"Clases Predefinidas en Java","\u002Fclases-objetos\u002Fpredefinidas","3.clases-objetos\u002F06.predefinidas",{"title":79,"path":80,"stem":81,"icon":82},"Paquetes en Java","\u002Fclases-objetos\u002Fpaquetes","3.clases-objetos\u002F07.paquetes","i-material-icon-theme-folder-java-open",{"title":84,"path":85,"stem":86,"icon":87},"Las Excepciones","\u002Fclases-objetos\u002Fexcepciones","3.clases-objetos\u002F08.excepciones","i-catppuccin-java-exception",{"title":89,"path":90,"stem":91,"icon":45},"La clase JOptionPane","\u002Fclases-objetos\u002Fjoptionpane","3.clases-objetos\u002F09.joptionpane",{"title":93,"path":94,"stem":95,"icon":45},"Constructores y Accesores","\u002Fclases-objetos\u002Fconstructores","3.clases-objetos\u002F10.constructores",{"title":97,"path":98,"stem":99,"icon":100},"Tipos Enumerados (Enums)","\u002Fclases-objetos\u002Fenumerados","3.clases-objetos\u002F11.enumerados","i-catppuccin-java-enum",{"title":102,"path":103,"stem":104,"icon":105},"Modificadores de acceso static y final","\u002Fclases-objetos\u002Fmodificadores","3.clases-objetos\u002F12.modificadores","i-mdi-chart-box",{"title":107,"path":108,"stem":109,"icon":105},"El casting en Java","\u002Fclases-objetos\u002Fcasting","3.clases-objetos\u002F13.casting",{"title":111,"path":112,"stem":113},"Las Expresiones Regulares","\u002Fclases-objetos\u002Fexpresiones-regulares","3.clases-objetos\u002F14.expresiones-regulares",{"title":115,"path":116,"stem":117,"icon":105},"Clases Genéricas en Java","\u002Fclases-objetos\u002Fclases-genericas","3.clases-objetos\u002F15.clases-genericas",{"title":119,"icon":120,"path":121,"stem":122,"children":123,"page":42},"Funciones (Métodos)","i-material-symbols-function","\u002Fmetodos","4.metodos",[124,128,132,136,140,144,148,152,156],{"title":125,"path":126,"stem":127},"Funciones Genéricas","\u002Fmetodos\u002Ffuncion-generica","4.metodos\u002F01.funcion-generica",{"title":129,"path":130,"stem":131},"Métodos de Instancia y de Clase","\u002Fmetodos\u002Finstancia-clase","4.metodos\u002F02.instancia-clase",{"title":133,"path":134,"stem":135},"Sobrecarga de Funciones","\u002Fmetodos\u002Fsobrecarga","4.metodos\u002F03.sobrecarga",{"title":137,"path":138,"stem":139},"Alcance de Variables y Métodos","\u002Fmetodos\u002Falcance","4.metodos\u002F04.alcance",{"title":141,"path":142,"stem":143},"Recursividad","\u002Fmetodos\u002Frecursividad","4.metodos\u002F05.recursividad",{"title":145,"path":146,"stem":147},"Puntero this","\u002Fmetodos\u002Fthis","4.metodos\u002F06.this",{"title":149,"path":150,"stem":151},"Los argumentos variables (varargs)","\u002Fmetodos\u002Fvarargs","4.metodos\u002F07.varargs",{"title":153,"path":154,"stem":155},"La clase Arrays","\u002Fmetodos\u002Farrays","4.metodos\u002F08.arrays",{"title":157,"path":158,"stem":159},"Predicados Simples y Compuestos en Java","\u002Fmetodos\u002Fpredicados","4.metodos\u002F09.predicados",{"title":161,"path":162,"stem":163,"children":164,"icon":199},"Herencia","\u002Fherencia","5.herencia\u002F01.index",[165,167,171,175,179,183,187,191,195],{"title":166,"path":162,"stem":163},"¿Qué es la herencia?",{"title":168,"path":169,"stem":170},"Sobreescritura de métodos y uso de `super`","\u002Fherencia\u002Fsobeescritura","5.herencia\u002F02.sobeescritura",{"title":172,"path":173,"stem":174},"Tipos de herencia","\u002Fherencia\u002Ftipos-herencia","5.herencia\u002F03.tipos-herencia",{"title":176,"path":177,"stem":178},"La clase Object en Java","\u002Fherencia\u002Fobject","5.herencia\u002F04.object",{"title":180,"path":181,"stem":182},"Polimorfismo","\u002Fherencia\u002Fpolimorfismo","5.herencia\u002F05.polimorfismo",{"title":184,"path":185,"stem":186},"Clases y Funciones Abstractas","\u002Fherencia\u002Fabstract","5.herencia\u002F06.abstract",{"title":188,"path":189,"stem":190},"Interfaces","\u002Fherencia\u002Finterfaces","5.herencia\u002F07.interfaces",{"title":192,"path":193,"stem":194},"Funciones e Interfaces","\u002Fherencia\u002Ffunciones-interfaces","5.herencia\u002F08.funciones-interfaces",{"title":196,"path":197,"stem":198},"Interfaces y Funciones Lambda","\u002Fherencia\u002Flambda-interface","5.herencia\u002F09.lambda-interface","i-material-symbols-heritage",{"title":201,"path":202,"stem":203,"children":204,"icon":199},"Arreglos","\u002Farreglos","6.arreglos\u002F01.index",[205,207,211,215,219,223,227],{"title":206,"path":202,"stem":203},"Los arreglos en Java",{"title":208,"path":209,"stem":210},"Los arreglos","\u002Farreglos\u002Farray","6.arreglos\u002F02.array",{"title":212,"path":213,"stem":214},"Matrices","\u002Farreglos\u002Fmatrices","6.arreglos\u002F03.matrices",{"title":216,"path":217,"stem":218},"Comparadores","\u002Farreglos\u002Fcomparator","6.arreglos\u002F04.comparator",{"title":220,"path":221,"stem":222},"Arreglos dinámicos: ArrayList","\u002Farreglos\u002Farraylist","6.arreglos\u002F05.arraylist",{"title":224,"path":225,"stem":226},"Arreglos Relacionales: HashMap","\u002Farreglos\u002Fhashmap","6.arreglos\u002F06.hashmap",{"title":228,"path":229,"stem":230},"La clase Stream en Java","\u002Farreglos\u002Fstream","6.arreglos\u002F07.stream",{"title":232,"icon":199,"path":233,"stem":234,"children":235,"page":42},"Archivos e Interfaz de Usuario","\u002Farchivos-ui","7.archivos-ui",[236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316],{"title":237,"path":238,"stem":239},"El paquete Swing","\u002Farchivos-ui\u002Fswing","7.archivos-ui\u002F01.swing",{"title":241,"path":242,"stem":243},"La clase JFrame y el JPanel","\u002Farchivos-ui\u002Fjpanel","7.archivos-ui\u002F02.jpanel",{"title":245,"path":246,"stem":247},"Los Layouts en Swing","\u002Farchivos-ui\u002Flayout","7.archivos-ui\u002F03.layout",{"title":249,"path":250,"stem":251},"Iniciando con Swing","\u002Farchivos-ui\u002Finiciando","7.archivos-ui\u002F04.iniciando",{"title":253,"path":254,"stem":255},"Las clases Color y Font en Swing","\u002Farchivos-ui\u002Fcolor-font","7.archivos-ui\u002F05.color-font",{"title":257,"path":258,"stem":259},"Etiquetas en Swing","\u002Farchivos-ui\u002Fetiquetas","7.archivos-ui\u002F06.etiquetas",{"title":261,"path":262,"stem":263},"Personalizando la apariencia de los componentes en Swing","\u002Farchivos-ui\u002Fpersonalizando","7.archivos-ui\u002F07.personalizando",{"title":265,"path":266,"stem":267},"Sobrescribiendo el método drawComponent() en Swing","\u002Farchivos-ui\u002Fdraw","7.archivos-ui\u002F08.draw",{"title":269,"path":270,"stem":271},"Manejando eventos en Swing","\u002Farchivos-ui\u002Feventos","7.archivos-ui\u002F09.eventos",{"title":273,"path":274,"stem":275},"Personalización de Componentes mediante la Extensión de Clases en Swing","\u002Farchivos-ui\u002Fextends-component","7.archivos-ui\u002F10.extends-component",{"title":277,"path":278,"stem":279},"Gradientes","\u002Farchivos-ui\u002Fgradientes","7.archivos-ui\u002F11.gradientes",{"title":281,"path":282,"stem":283},"Botones en Swing","\u002Farchivos-ui\u002Fbotones","7.archivos-ui\u002F12.botones",{"title":285,"path":286,"stem":287},"Los delegadores en Swing","\u002Farchivos-ui\u002Fdelegadores","7.archivos-ui\u002F13.delegadores",{"title":289,"path":290,"stem":291},"UI para nuestro RPG: Parte 1","\u002Farchivos-ui\u002Frpg-ui-1","7.archivos-ui\u002F14.rpg-ui-1",{"title":293,"path":294,"stem":295},"UI para nuestro RPG: Parte 2","\u002Farchivos-ui\u002Frpg-ui-2","7.archivos-ui\u002F15.rpg-ui-2",{"title":297,"path":298,"stem":299},"Los Streams Entrada y Salida","\u002Farchivos-ui\u002Fstreams","7.archivos-ui\u002F16.streams",{"title":301,"path":302,"stem":303},"Archivo tipo Objeto","\u002Farchivos-ui\u002Farchivo-objeto","7.archivos-ui\u002F17.archivo-objeto",{"title":305,"path":306,"stem":307},"UI para nuestro RPG: Parte 3","\u002Farchivos-ui\u002Frpg-ui-3","7.archivos-ui\u002F18.rpg-ui-3",{"title":309,"path":310,"stem":311},"UI para nuestro RPG: Parte 4","\u002Farchivos-ui\u002Frpg-ui-4","7.archivos-ui\u002F19.rpg-ui-4",{"title":313,"path":314,"stem":315},"UI para nuestro RPG: Parte 5","\u002Farchivos-ui\u002Frpg-ui-5","7.archivos-ui\u002F20.rpg-ui-5",{"title":317,"path":318,"stem":319},"UI para nuestro RPG: Parte 6","\u002Farchivos-ui\u002Frpg-ui-6","7.archivos-ui\u002F21.rpg-ui-6",{"title":321,"icon":322,"path":323,"stem":324,"children":325,"page":42},"Ejemplos","i-check-circle","\u002Fejemplos","8.ejemplos",[326,330,334,338,342],{"title":327,"path":328,"stem":329,"icon":105},"Ejemplo 1: Validando entradas con JOptionPane","\u002Fejemplos\u002Fejemplo-01","8.ejemplos\u002F01.ejemplo-01",{"title":331,"path":332,"stem":333},"Ejemplo 02: Uso de clases genéricas en Java","\u002Fejemplos\u002Fejemplo-02","8.ejemplos\u002F02.ejemplo-02",{"title":335,"path":336,"stem":337},"Ejemplo 03: Uso de Enum, Excepciones en Java","\u002Fejemplos\u002Fejemplo-03","8.ejemplos\u002F03.ejemplo-03",{"title":339,"path":340,"stem":341},"Ejemplo 4: Clase con funciones genéricas de validación","\u002Fejemplos\u002Fejemplo-04","8.ejemplos\u002F04.ejemplo-04",{"title":343,"path":344,"stem":345},"Ejemplo 5: Sistema de Gestión de Empleados","\u002Fejemplos\u002Fejemplo-05","8.ejemplos\u002F05.ejemplo-05",{"title":347,"icon":322,"path":348,"stem":349,"children":350,"page":42},"Actividades","\u002Factividades","9.actividades",[351,355,360,364,368,372,376,380,384,388,392,396,400,404,408],{"title":352,"path":353,"stem":354,"icon":105},"Actividad 1: Infografía sobre el proceso de compilación","\u002Factividades\u002Fact-01","9.actividades\u002F01.act-01",{"title":356,"path":357,"stem":358,"icon":359},"Actividad 2: Modelando Diagramas de Clases UML","\u002Factividades\u002Fact-02","9.actividades\u002F02.act-02","i-material-icon-theme-uml",{"title":361,"path":362,"stem":363,"icon":45},"Actividad 3: Creando Clases y Objetos en Java","\u002Factividades\u002Fact-03","9.actividades\u002F03.act-03",{"title":365,"path":366,"stem":367},"Actividad 4: Validando entradas de datos","\u002Factividades\u002Fact-04","9.actividades\u002F04.act-04",{"title":369,"path":370,"stem":371,"icon":105},"Actividad 5: Implementando una clase genérica","\u002Factividades\u002Fact-05","9.actividades\u002F05.act-05",{"title":373,"path":374,"stem":375,"icon":105},"Actividad 6: Expandiendo InputValidator con Predicados y Function","\u002Factividades\u002Fact-06","9.actividades\u002F06.act-06",{"title":377,"path":378,"stem":379,"icon":105},"Actividad 7: Gestor de Biblioteca con InputValidator","\u002Factividades\u002Fact-07","9.actividades\u002F07.act-07",{"title":381,"path":382,"stem":383,"icon":105},"Actividad 8: Calculadora de Figuras Geométricas","\u002Factividades\u002Fact-08","9.actividades\u002F08.act-08",{"title":385,"path":386,"stem":387,"icon":105},"Actividad 9: gestión de una empresa agroalimentaria","\u002Factividades\u002Fact-09","9.actividades\u002F09.act-09",{"title":389,"path":390,"stem":391,"icon":105},"Actividad 10: Sistema de gestión de clínicas veterinarias","\u002Factividades\u002Fact-10","9.actividades\u002F10.act-10",{"title":393,"path":394,"stem":395},"Definición de Proyecto Evolutivo","\u002Factividades\u002Frpg","9.actividades\u002F11.rpg",{"title":397,"path":398,"stem":399},"Actividad 11: Creación de Personajes","\u002Factividades\u002Fact-11","9.actividades\u002F12.act-11",{"title":401,"path":402,"stem":403},"Actividad 12: El Inventario y los Objetos","\u002Factividades\u002Fact-12","9.actividades\u002F13.act-12",{"title":405,"path":406,"stem":407},"Actividad 13: El combate por turnos","\u002Factividades\u002Fact-13","9.actividades\u002F14.act-13",{"title":409,"path":410,"stem":411},"Actividad 14: Guardando y Cargando","\u002Factividades\u002Fact-14","9.actividades\u002F15.act-14",{"id":413,"title":249,"body":414,"description":788,"extension":789,"links":790,"meta":791,"navigation":482,"path":250,"seo":792,"stem":251,"__hash__":793},"docs\u002F7.archivos-ui\u002F04.iniciando.md",{"type":415,"value":416,"toc":782},"minimark",[417,422,426,443,447,599,602,619,623,764,771,775,778],[418,419,421],"h2",{"id":420},"empezando-con-las-ventanas","Empezando con las ventanas",[423,424,425],"p",{},"Para comenzar a trabajar con las ventas en Java con Swing, debemos de entender que tenemos dos vertientes:",[427,428,429,437],"ul",{},[430,431,432,436],"li",{},[433,434,435],"strong",{},"Heredar",": Esta alternativa nos lleva a heredar de la clase JFrame y usar las funciones directamente en nuestro desarrollo.",[430,438,439,442],{},[433,440,441],{},"Usar atributos",": En esta alternativa lo que debemos hacer es usar un atributo de tipo JFrame, sobre el cual se irán colocando las cosas, sin embargo, podemos perder acceso a ciertas cualidades que existen en el modo herencia.",[418,444,446],{"id":445},"estructura-de-un-jframe","Estructura de un JFrame",[448,449,454],"pre",{"className":450,"code":451,"language":452,"meta":453,"style":453},"language-java shiki shiki-themes github-dark","import javax.swing.*;\n\npublic class ExampleWindow extends JFrame{\n    public ExampleWindow(){\n        setTitle(\"Mi Ventana\");\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        setSize(400,300);\n        setResizable(false);\n        setVisible(true);\n    }\n}\n","java","",[455,456,457,477,484,506,517,533,542,561,574,587,593],"code",{"__ignoreMap":453},[458,459,462,466,470,474],"span",{"class":460,"line":461},"line",1,[458,463,465],{"class":464},"snl16","import",[458,467,469],{"class":468},"s95oV"," javax.swing.",[458,471,473],{"class":472},"sDLfK","*",[458,475,476],{"class":468},";\n",[458,478,480],{"class":460,"line":479},2,[458,481,483],{"emptyLinePlaceholder":482},true,"\n",[458,485,487,490,493,497,500,503],{"class":460,"line":486},3,[458,488,489],{"class":464},"public",[458,491,492],{"class":464}," class",[458,494,496],{"class":495},"svObZ"," ExampleWindow",[458,498,499],{"class":464}," extends",[458,501,502],{"class":495}," JFrame",[458,504,505],{"class":468},"{\n",[458,507,509,512,514],{"class":460,"line":508},4,[458,510,511],{"class":464},"    public",[458,513,496],{"class":495},[458,515,516],{"class":468},"(){\n",[458,518,520,523,526,530],{"class":460,"line":519},5,[458,521,522],{"class":495},"        setTitle",[458,524,525],{"class":468},"(",[458,527,529],{"class":528},"sU2Wk","\"Mi Ventana\"",[458,531,532],{"class":468},");\n",[458,534,536,539],{"class":460,"line":535},6,[458,537,538],{"class":495},"        setDefaultCloseOperation",[458,540,541],{"class":468},"(JFrame.EXIT_ON_CLOSE);\n",[458,543,545,548,550,553,556,559],{"class":460,"line":544},7,[458,546,547],{"class":495},"        setSize",[458,549,525],{"class":468},[458,551,552],{"class":472},"400",[458,554,555],{"class":468},",",[458,557,558],{"class":472},"300",[458,560,532],{"class":468},[458,562,564,567,569,572],{"class":460,"line":563},8,[458,565,566],{"class":495},"        setResizable",[458,568,525],{"class":468},[458,570,571],{"class":472},"false",[458,573,532],{"class":468},[458,575,577,580,582,585],{"class":460,"line":576},9,[458,578,579],{"class":495},"        setVisible",[458,581,525],{"class":468},[458,583,584],{"class":472},"true",[458,586,532],{"class":468},[458,588,590],{"class":460,"line":589},10,[458,591,592],{"class":468},"    }\n",[458,594,596],{"class":460,"line":595},11,[458,597,598],{"class":468},"}\n",[423,600,601],{},"Lo que podemos notar en el ejemplo anterior es el uso de las funciones más básicas de JFrame:",[427,603,604,607,610,613,616],{},[430,605,606],{},"setTitle(): Permite colocar el título de la ventana",[430,608,609],{},"setDefaultCloseOperation(): Permite definir la función por defecto al cerar una ventana.",[430,611,612],{},"setSize(): asigna la dimensión a la ventana.",[430,614,615],{},"setResizable(): indica si la ventana puede o no cambiar sus dimensiones.",[430,617,618],{},"setVisible(): muestra la ventana.",[418,620,622],{"id":621},"agregando-componentes-a-la-ventana","Agregando componentes a la ventana",[448,624,626],{"className":450,"code":625,"language":452,"meta":453,"style":453},"import javax.swing.*;\n\npublic class ExampleWindow extends JFrame{\n    public ExampleWindow(){\n        setTitle(\"Mi Ventana\");\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        setSize(400,300);\n        setResizable(false);\n        \n        JButton button = new JButton(\"Haz clic aquí\");\n        add(button);\n        \n        setVisible(true);\n    }\n}\n",[455,627,628,638,642,656,664,674,680,694,704,709,730,738,743,754,759],{"__ignoreMap":453},[458,629,630,632,634,636],{"class":460,"line":461},[458,631,465],{"class":464},[458,633,469],{"class":468},[458,635,473],{"class":472},[458,637,476],{"class":468},[458,639,640],{"class":460,"line":479},[458,641,483],{"emptyLinePlaceholder":482},[458,643,644,646,648,650,652,654],{"class":460,"line":486},[458,645,489],{"class":464},[458,647,492],{"class":464},[458,649,496],{"class":495},[458,651,499],{"class":464},[458,653,502],{"class":495},[458,655,505],{"class":468},[458,657,658,660,662],{"class":460,"line":508},[458,659,511],{"class":464},[458,661,496],{"class":495},[458,663,516],{"class":468},[458,665,666,668,670,672],{"class":460,"line":519},[458,667,522],{"class":495},[458,669,525],{"class":468},[458,671,529],{"class":528},[458,673,532],{"class":468},[458,675,676,678],{"class":460,"line":535},[458,677,538],{"class":495},[458,679,541],{"class":468},[458,681,682,684,686,688,690,692],{"class":460,"line":544},[458,683,547],{"class":495},[458,685,525],{"class":468},[458,687,552],{"class":472},[458,689,555],{"class":468},[458,691,558],{"class":472},[458,693,532],{"class":468},[458,695,696,698,700,702],{"class":460,"line":563},[458,697,566],{"class":495},[458,699,525],{"class":468},[458,701,571],{"class":472},[458,703,532],{"class":468},[458,705,706],{"class":460,"line":576},[458,707,708],{"class":468},"        \n",[458,710,711,714,717,720,723,725,728],{"class":460,"line":589},[458,712,713],{"class":468},"        JButton button ",[458,715,716],{"class":464},"=",[458,718,719],{"class":464}," new",[458,721,722],{"class":495}," JButton",[458,724,525],{"class":468},[458,726,727],{"class":528},"\"Haz clic aquí\"",[458,729,532],{"class":468},[458,731,732,735],{"class":460,"line":595},[458,733,734],{"class":495},"        add",[458,736,737],{"class":468},"(button);\n",[458,739,741],{"class":460,"line":740},12,[458,742,708],{"class":468},[458,744,746,748,750,752],{"class":460,"line":745},13,[458,747,579],{"class":495},[458,749,525],{"class":468},[458,751,584],{"class":472},[458,753,532],{"class":468},[458,755,757],{"class":460,"line":756},14,[458,758,592],{"class":468},[458,760,762],{"class":460,"line":761},15,[458,763,598],{"class":468},[423,765,766,767,770],{},"En el ejemplo anterior, se ha agregado un botón a la ventana utilizando la función ",[455,768,769],{},"add()",". Este método permite agregar componentes a la ventana, y dependiendo del layout que se esté utilizando, los componentes se organizarán de diferentes maneras. En este caso, al no especificar un layout, el botón se agregará al centro de la ventana por defecto.",[418,772,774],{"id":773},"conclusión","Conclusión",[423,776,777],{},"En este apartado hemos visto cómo iniciar con Swing, creando una ventana básica y agregando un componente a ella. Es importante entender la estructura de un JFrame y las funciones básicas que se pueden utilizar para configurar la ventana. En los siguientes apartados, exploraremos más componentes y layouts para crear interfaces gráficas más complejas y funcionales.",[779,780,781],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}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);}",{"title":453,"searchDepth":479,"depth":479,"links":783},[784,785,786,787],{"id":420,"depth":479,"text":421},{"id":445,"depth":479,"text":446},{"id":621,"depth":479,"text":622},{"id":773,"depth":479,"text":774},"En este apartado comprenderemos las funciones más básicas de JFrame y el uso de algunos componentes.","md",null,{"editButton":42},{"title":249,"description":788},"VPb76UHGPZoZ1NxqBvY1Nr5W9k7312cEj4hRvGST4hg",[795,797],{"title":245,"path":246,"stem":247,"description":796,"children":-1},"Introducción a los diferentes tipos de layouts en Swing para organizar componentes en una interfaz gráfica.",{"title":253,"path":254,"stem":255,"description":798,"children":-1},"En este apartado aprenderemos a usar las clases Color y Font en Swing, las cuales son fundamentales para personalizar la apariencia de los componentes en la interfaz gráfica.",1779479574183]