[{"data":1,"prerenderedAt":973},["ShallowReactive",2],{"navigation_docs":3,"-archivos-ui-layout":412,"-archivos-ui-layout-surround":968},[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":245,"body":414,"description":962,"extension":963,"links":964,"meta":965,"navigation":524,"path":246,"seo":966,"stem":247,"__hash__":967},"docs\u002F7.archivos-ui\u002F03.layout.md",{"type":415,"value":416,"toc":955},"minimark",[417,422,438,442,474,478,900,906,910,913,944,948,951],[418,419,421],"h2",{"id":420},"qué-es-un-layout","¿Qué es un Layout?",[423,424,425,426,430,431,430,434,437],"p",{},"Un layout es un administrador de diseño que se encarga de organizar y posicionar los componentes dentro de un contenedor en una interfaz gráfica. En Swing, existen varios tipos de layouts que permiten organizar los componentes de diferentes maneras, como el ",[427,428,429],"code",{},"FlowLayout",", ",[427,432,433],{},"BorderLayout",[427,435,436],{},"GridLayout",", entre otros. Cada layout tiene sus propias reglas para posicionar los componentes, y es importante elegir el layout adecuado según las necesidades de tu interfaz gráfica.",[418,439,441],{"id":440},"tipos-de-layouts-en-swing","Tipos de Layouts en Swing",[443,444,445,452,457,462,468],"ul",{},[446,447,448,451],"li",{},[449,450,429],"strong",{},": Organiza los componentes en una fila, y cuando no hay espacio suficiente, los componentes se envuelven a la siguiente fila. Es el layout predeterminado para los JPanel.",[446,453,454,456],{},[449,455,433],{},": Organiza los componentes en cinco regiones: norte, sur, este, oeste y centro. Cada región puede contener un solo componente, y el componente en el centro se expande para llenar el espacio restante.",[446,458,459,461],{},[449,460,436],{},": Organiza los componentes en una cuadrícula de filas y columnas, donde cada componente ocupa una celda de la cuadrícula. Todos los componentes tienen el mismo tamaño.",[446,463,464,467],{},[449,465,466],{},"BoxLayout",": Organiza los componentes en una sola fila o columna, dependiendo de la orientación especificada. Es útil para crear interfaces con una disposición lineal de componentes.",[446,469,470,473],{},[449,471,472],{},"GridBagLayout",": Es un layout más flexible que permite organizar los componentes en una cuadrícula, pero con la capacidad de que los componentes ocupen varias filas o columnas, y de ajustar su tamaño según el espacio disponible.",[418,475,477],{"id":476},"un-ejemplo-de-uso-de-layouts-en-swing","Un ejemplo de uso de Layouts en Swing",[479,480,485],"pre",{"className":481,"code":482,"language":483,"meta":484,"style":484},"language-java shiki shiki-themes github-dark","import javax.swing.*;\nimport java.awt.*;\n\npublic class LayoutExample {\n    public static void main(String[] args) {\n        \u002F\u002F Crear un JFrame\n        JFrame frame = new JFrame(\"Ejemplo de Layouts en Swing\");\n        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        frame.setSize(400, 300);\n\n        \u002F\u002F Crear un JPanel con BorderLayout\n        JPanel panel = new JPanel(new BorderLayout());\n\n        \u002F\u002F Crear componentes\n        JButton northButton = new JButton(\"Norte\");\n        JButton southButton = new JButton(\"Sur\");\n        JButton eastButton = new JButton(\"Este\");\n        JButton westButton = new JButton(\"Oeste\");\n        JButton centerButton = new JButton(\"Centro\");\n\n        \u002F\u002F Agregar componentes al panel con BorderLayout\n        panel.add(northButton, BorderLayout.NORTH);\n        panel.add(southButton, BorderLayout.SOUTH);\n        panel.add(eastButton, BorderLayout.EAST);\n        panel.add(westButton, BorderLayout.WEST);\n        panel.add(centerButton, BorderLayout.CENTER);\n\n        \u002F\u002F Agregar el panel al frame\n        frame.add(panel);\n\n        \u002F\u002F Hacer visible el frame\n        frame.setVisible(true);\n    }\n}\n","java","",[427,486,487,507,519,526,542,573,580,604,616,636,641,647,671,676,682,702,721,740,759,778,783,789,801,811,821,831,841,846,852,862,867,873,888,894],{"__ignoreMap":484},[488,489,492,496,500,504],"span",{"class":490,"line":491},"line",1,[488,493,495],{"class":494},"snl16","import",[488,497,499],{"class":498},"s95oV"," javax.swing.",[488,501,503],{"class":502},"sDLfK","*",[488,505,506],{"class":498},";\n",[488,508,510,512,515,517],{"class":490,"line":509},2,[488,511,495],{"class":494},[488,513,514],{"class":498}," java.awt.",[488,516,503],{"class":502},[488,518,506],{"class":498},[488,520,522],{"class":490,"line":521},3,[488,523,525],{"emptyLinePlaceholder":524},true,"\n",[488,527,529,532,535,539],{"class":490,"line":528},4,[488,530,531],{"class":494},"public",[488,533,534],{"class":494}," class",[488,536,538],{"class":537},"svObZ"," LayoutExample",[488,540,541],{"class":498}," {\n",[488,543,545,548,551,554,557,560,563,566,570],{"class":490,"line":544},5,[488,546,547],{"class":494},"    public",[488,549,550],{"class":494}," static",[488,552,553],{"class":494}," void",[488,555,556],{"class":537}," main",[488,558,559],{"class":498},"(",[488,561,562],{"class":494},"String",[488,564,565],{"class":498},"[] ",[488,567,569],{"class":568},"s9osk","args",[488,571,572],{"class":498},") {\n",[488,574,576],{"class":490,"line":575},6,[488,577,579],{"class":578},"sAwPA","        \u002F\u002F Crear un JFrame\n",[488,581,583,586,589,592,595,597,601],{"class":490,"line":582},7,[488,584,585],{"class":498},"        JFrame frame ",[488,587,588],{"class":494},"=",[488,590,591],{"class":494}," new",[488,593,594],{"class":537}," JFrame",[488,596,559],{"class":498},[488,598,600],{"class":599},"sU2Wk","\"Ejemplo de Layouts en Swing\"",[488,602,603],{"class":498},");\n",[488,605,607,610,613],{"class":490,"line":606},8,[488,608,609],{"class":498},"        frame.",[488,611,612],{"class":537},"setDefaultCloseOperation",[488,614,615],{"class":498},"(JFrame.EXIT_ON_CLOSE);\n",[488,617,619,621,624,626,629,631,634],{"class":490,"line":618},9,[488,620,609],{"class":498},[488,622,623],{"class":537},"setSize",[488,625,559],{"class":498},[488,627,628],{"class":502},"400",[488,630,430],{"class":498},[488,632,633],{"class":502},"300",[488,635,603],{"class":498},[488,637,639],{"class":490,"line":638},10,[488,640,525],{"emptyLinePlaceholder":524},[488,642,644],{"class":490,"line":643},11,[488,645,646],{"class":578},"        \u002F\u002F Crear un JPanel con BorderLayout\n",[488,648,650,653,655,657,660,662,665,668],{"class":490,"line":649},12,[488,651,652],{"class":498},"        JPanel panel ",[488,654,588],{"class":494},[488,656,591],{"class":494},[488,658,659],{"class":537}," JPanel",[488,661,559],{"class":498},[488,663,664],{"class":494},"new",[488,666,667],{"class":537}," BorderLayout",[488,669,670],{"class":498},"());\n",[488,672,674],{"class":490,"line":673},13,[488,675,525],{"emptyLinePlaceholder":524},[488,677,679],{"class":490,"line":678},14,[488,680,681],{"class":578},"        \u002F\u002F Crear componentes\n",[488,683,685,688,690,692,695,697,700],{"class":490,"line":684},15,[488,686,687],{"class":498},"        JButton northButton ",[488,689,588],{"class":494},[488,691,591],{"class":494},[488,693,694],{"class":537}," JButton",[488,696,559],{"class":498},[488,698,699],{"class":599},"\"Norte\"",[488,701,603],{"class":498},[488,703,705,708,710,712,714,716,719],{"class":490,"line":704},16,[488,706,707],{"class":498},"        JButton southButton ",[488,709,588],{"class":494},[488,711,591],{"class":494},[488,713,694],{"class":537},[488,715,559],{"class":498},[488,717,718],{"class":599},"\"Sur\"",[488,720,603],{"class":498},[488,722,724,727,729,731,733,735,738],{"class":490,"line":723},17,[488,725,726],{"class":498},"        JButton eastButton ",[488,728,588],{"class":494},[488,730,591],{"class":494},[488,732,694],{"class":537},[488,734,559],{"class":498},[488,736,737],{"class":599},"\"Este\"",[488,739,603],{"class":498},[488,741,743,746,748,750,752,754,757],{"class":490,"line":742},18,[488,744,745],{"class":498},"        JButton westButton ",[488,747,588],{"class":494},[488,749,591],{"class":494},[488,751,694],{"class":537},[488,753,559],{"class":498},[488,755,756],{"class":599},"\"Oeste\"",[488,758,603],{"class":498},[488,760,762,765,767,769,771,773,776],{"class":490,"line":761},19,[488,763,764],{"class":498},"        JButton centerButton ",[488,766,588],{"class":494},[488,768,591],{"class":494},[488,770,694],{"class":537},[488,772,559],{"class":498},[488,774,775],{"class":599},"\"Centro\"",[488,777,603],{"class":498},[488,779,781],{"class":490,"line":780},20,[488,782,525],{"emptyLinePlaceholder":524},[488,784,786],{"class":490,"line":785},21,[488,787,788],{"class":578},"        \u002F\u002F Agregar componentes al panel con BorderLayout\n",[488,790,792,795,798],{"class":490,"line":791},22,[488,793,794],{"class":498},"        panel.",[488,796,797],{"class":537},"add",[488,799,800],{"class":498},"(northButton, BorderLayout.NORTH);\n",[488,802,804,806,808],{"class":490,"line":803},23,[488,805,794],{"class":498},[488,807,797],{"class":537},[488,809,810],{"class":498},"(southButton, BorderLayout.SOUTH);\n",[488,812,814,816,818],{"class":490,"line":813},24,[488,815,794],{"class":498},[488,817,797],{"class":537},[488,819,820],{"class":498},"(eastButton, BorderLayout.EAST);\n",[488,822,824,826,828],{"class":490,"line":823},25,[488,825,794],{"class":498},[488,827,797],{"class":537},[488,829,830],{"class":498},"(westButton, BorderLayout.WEST);\n",[488,832,834,836,838],{"class":490,"line":833},26,[488,835,794],{"class":498},[488,837,797],{"class":537},[488,839,840],{"class":498},"(centerButton, BorderLayout.CENTER);\n",[488,842,844],{"class":490,"line":843},27,[488,845,525],{"emptyLinePlaceholder":524},[488,847,849],{"class":490,"line":848},28,[488,850,851],{"class":578},"        \u002F\u002F Agregar el panel al frame\n",[488,853,855,857,859],{"class":490,"line":854},29,[488,856,609],{"class":498},[488,858,797],{"class":537},[488,860,861],{"class":498},"(panel);\n",[488,863,865],{"class":490,"line":864},30,[488,866,525],{"emptyLinePlaceholder":524},[488,868,870],{"class":490,"line":869},31,[488,871,872],{"class":578},"        \u002F\u002F Hacer visible el frame\n",[488,874,876,878,881,883,886],{"class":490,"line":875},32,[488,877,609],{"class":498},[488,879,880],{"class":537},"setVisible",[488,882,559],{"class":498},[488,884,885],{"class":502},"true",[488,887,603],{"class":498},[488,889,891],{"class":490,"line":890},33,[488,892,893],{"class":498},"    }\n",[488,895,897],{"class":490,"line":896},34,[488,898,899],{"class":498},"}\n",[423,901,902,903,905],{},"En este ejemplo, se crea una ventana con un panel que utiliza el ",[427,904,433],{},". Se agregan cinco botones a las diferentes regiones del layout, y el botón en el centro se expande para llenar el espacio restante. Este es un ejemplo básico de cómo usar diferentes layouts en Swing para organizar los componentes en una interfaz gráfica.",[418,907,909],{"id":908},"cómo-elegir-el-layout-adecuado","¿Cómo elegir el layout adecuado?",[423,911,912],{},"La elección del layout adecuado depende de la estructura y el diseño que deseas para tu interfaz gráfica. Aquí hay algunas consideraciones para ayudarte a elegir el layout correcto:",[443,914,915,924,930,938],{},[446,916,917,918,920,921,923],{},"Si deseas organizar los componentes en una fila o columna, el ",[427,919,429],{}," o ",[427,922,466],{}," pueden ser opciones adecuadas.",[446,925,926,927,929],{},"Si deseas organizar los componentes en regiones específicas, el ",[427,928,433],{}," es una buena opción.",[446,931,932,933,920,935,937],{},"Si deseas organizar los componentes en una cuadrícula, el ",[427,934,436],{},[427,936,472],{}," pueden ser opciones adecuadas, dependiendo de la flexibilidad que necesites.",[446,939,940,941,943],{},"Si deseas una disposición más personalizada, el ",[427,942,472],{}," puede ser la mejor opción, aunque es más complejo de usar.",[418,945,947],{"id":946},"conclusión","Conclusión",[423,949,950],{},"En este apartado hemos introducido el concepto de layouts en Swing y hemos explorado algunos de los tipos de layouts más comunes. Los layouts son fundamentales para organizar los componentes en una interfaz gráfica de manera efectiva, y elegir el layout adecuado es crucial para lograr un diseño funcional y estéticamente agradable. En los siguientes apartados, profundizaremos en cada tipo de layout y veremos ejemplos más detallados de cómo usarlos en tus proyectos de Swing.",[952,953,954],"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 .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}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":484,"searchDepth":509,"depth":509,"links":956},[957,958,959,960,961],{"id":420,"depth":509,"text":421},{"id":440,"depth":509,"text":441},{"id":476,"depth":509,"text":477},{"id":908,"depth":509,"text":909},{"id":946,"depth":509,"text":947},"Introducción a los diferentes tipos de layouts en Swing para organizar componentes en una interfaz gráfica.","md",null,{"editButton":42},{"title":245,"description":962},"hRUZFkn4ug1lNH3HlY48kKrz46IJG-mClZofftFQtjs",[969,971],{"title":241,"path":242,"stem":243,"description":970,"children":-1},"Introducción a la clase JFrame y JPanel en Swing para crear interfaces gráficas en Java.",{"title":249,"path":250,"stem":251,"description":972,"children":-1},"En este apartado comprenderemos las funciones más básicas de JFrame y el uso de algunos componentes.",1779479574014]