[{"data":1,"prerenderedAt":1005},["ShallowReactive",2],{"navigation_docs":3,"-gui-jframe":298,"-gui-jframe-surround":1000},[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":35,"body":300,"description":994,"extension":995,"links":996,"meta":997,"navigation":363,"path":36,"seo":998,"stem":37,"__hash__":999},"docs\u002F2.gui\u002F04.jframe.md",{"type":301,"value":302,"toc":988},"minimark",[303,315,320,336,538,544,679,683,699,855,872,876,882,971,974,978,984],[304,305,306,307,311,312,314],"p",{},"El componente ",[308,309,310],"code",{},"JFrame"," en Java Swing es la ventana principal de una aplicación gráfica. Es un contenedor que puede albergar otros componentes gráficos como botones, etiquetas, paneles, entre otros. A continuación, aprenderemos cómo crear y utilizar un ",[308,313,310],{}," en nuestras aplicaciones Swing.",[316,317,319],"h2",{"id":318},"creación-de-un-jframe","Creación de un JFrame",[304,321,322,323,325,326,328,329,332,333,335],{},"Para crear un ",[308,324,310],{},", primero debes importar la clase ",[308,327,310],{}," del paquete ",[308,330,331],{},"javax.swing",". Luego, puedes instanciar un objeto de ",[308,334,310],{}," y configurar sus propiedades básicas, como el título, tamaño y comportamiento al cerrar la ventana. Aquí tienes un ejemplo básico:",[337,338,343],"pre",{"className":339,"code":340,"language":341,"meta":342,"style":342},"language-java shiki shiki-themes github-dark","import javax.swing.JFrame;\n\npublic class JFrameExample {\n    public static void main(String[] args) {\n        \u002F\u002F Crear una instancia de JFrame\n        JFrame frame = new JFrame(\"Mi Ventana Swing\");\n        \n        \u002F\u002F Establecer el tamaño de la ventana\n        frame.setSize(400, 300);\n        \n        \u002F\u002F Configurar la operación de cierre\n        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        \n        \u002F\u002F Hacer visible la ventana\n        frame.setVisible(true);\n    }\n}\n","java","",[308,344,345,358,365,381,412,419,443,449,455,478,483,489,500,505,511,526,532],{"__ignoreMap":342},[346,347,350,354],"span",{"class":348,"line":349},"line",1,[346,351,353],{"class":352},"snl16","import",[346,355,357],{"class":356},"s95oV"," javax.swing.JFrame;\n",[346,359,361],{"class":348,"line":360},2,[346,362,364],{"emptyLinePlaceholder":363},true,"\n",[346,366,368,371,374,378],{"class":348,"line":367},3,[346,369,370],{"class":352},"public",[346,372,373],{"class":352}," class",[346,375,377],{"class":376},"svObZ"," JFrameExample",[346,379,380],{"class":356}," {\n",[346,382,384,387,390,393,396,399,402,405,409],{"class":348,"line":383},4,[346,385,386],{"class":352},"    public",[346,388,389],{"class":352}," static",[346,391,392],{"class":352}," void",[346,394,395],{"class":376}," main",[346,397,398],{"class":356},"(",[346,400,401],{"class":352},"String",[346,403,404],{"class":356},"[] ",[346,406,408],{"class":407},"s9osk","args",[346,410,411],{"class":356},") {\n",[346,413,415],{"class":348,"line":414},5,[346,416,418],{"class":417},"sAwPA","        \u002F\u002F Crear una instancia de JFrame\n",[346,420,422,425,428,431,434,436,440],{"class":348,"line":421},6,[346,423,424],{"class":356},"        JFrame frame ",[346,426,427],{"class":352},"=",[346,429,430],{"class":352}," new",[346,432,433],{"class":376}," JFrame",[346,435,398],{"class":356},[346,437,439],{"class":438},"sU2Wk","\"Mi Ventana Swing\"",[346,441,442],{"class":356},");\n",[346,444,446],{"class":348,"line":445},7,[346,447,448],{"class":356},"        \n",[346,450,452],{"class":348,"line":451},8,[346,453,454],{"class":417},"        \u002F\u002F Establecer el tamaño de la ventana\n",[346,456,458,461,464,466,470,473,476],{"class":348,"line":457},9,[346,459,460],{"class":356},"        frame.",[346,462,463],{"class":376},"setSize",[346,465,398],{"class":356},[346,467,469],{"class":468},"sDLfK","400",[346,471,472],{"class":356},", ",[346,474,475],{"class":468},"300",[346,477,442],{"class":356},[346,479,481],{"class":348,"line":480},10,[346,482,448],{"class":356},[346,484,486],{"class":348,"line":485},11,[346,487,488],{"class":417},"        \u002F\u002F Configurar la operación de cierre\n",[346,490,492,494,497],{"class":348,"line":491},12,[346,493,460],{"class":356},[346,495,496],{"class":376},"setDefaultCloseOperation",[346,498,499],{"class":356},"(JFrame.EXIT_ON_CLOSE);\n",[346,501,503],{"class":348,"line":502},13,[346,504,448],{"class":356},[346,506,508],{"class":348,"line":507},14,[346,509,510],{"class":417},"        \u002F\u002F Hacer visible la ventana\n",[346,512,514,516,519,521,524],{"class":348,"line":513},15,[346,515,460],{"class":356},[346,517,518],{"class":376},"setVisible",[346,520,398],{"class":356},[346,522,523],{"class":468},"true",[346,525,442],{"class":356},[346,527,529],{"class":348,"line":528},16,[346,530,531],{"class":356},"    }\n",[346,533,535],{"class":348,"line":534},17,[346,536,537],{"class":356},"}\n",[304,539,540,541,543],{},"Aunque también puedes crear una clase que extienda de ",[308,542,310],{}," para definir la ventana:",[337,545,547],{"className":339,"code":546,"language":341,"meta":342,"style":342},"import javax.swing.JFrame;\n\npublic class MyFrame extends JFrame {\n    public MyFrame() {\n        setTitle(\"Mi Ventana Swing\");\n        setSize(400, 300);\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n    }\n\n    public static void main(String[] args) {\n        MyFrame frame = new MyFrame();\n        frame.setVisible(true);\n    }\n}\n",[308,548,549,555,559,575,584,595,610,617,621,625,645,659,671,675],{"__ignoreMap":342},[346,550,551,553],{"class":348,"line":349},[346,552,353],{"class":352},[346,554,357],{"class":356},[346,556,557],{"class":348,"line":360},[346,558,364],{"emptyLinePlaceholder":363},[346,560,561,563,565,568,571,573],{"class":348,"line":367},[346,562,370],{"class":352},[346,564,373],{"class":352},[346,566,567],{"class":376}," MyFrame",[346,569,570],{"class":352}," extends",[346,572,433],{"class":376},[346,574,380],{"class":356},[346,576,577,579,581],{"class":348,"line":383},[346,578,386],{"class":352},[346,580,567],{"class":376},[346,582,583],{"class":356},"() {\n",[346,585,586,589,591,593],{"class":348,"line":414},[346,587,588],{"class":376},"        setTitle",[346,590,398],{"class":356},[346,592,439],{"class":438},[346,594,442],{"class":356},[346,596,597,600,602,604,606,608],{"class":348,"line":421},[346,598,599],{"class":376},"        setSize",[346,601,398],{"class":356},[346,603,469],{"class":468},[346,605,472],{"class":356},[346,607,475],{"class":468},[346,609,442],{"class":356},[346,611,612,615],{"class":348,"line":445},[346,613,614],{"class":376},"        setDefaultCloseOperation",[346,616,499],{"class":356},[346,618,619],{"class":348,"line":451},[346,620,531],{"class":356},[346,622,623],{"class":348,"line":457},[346,624,364],{"emptyLinePlaceholder":363},[346,626,627,629,631,633,635,637,639,641,643],{"class":348,"line":480},[346,628,386],{"class":352},[346,630,389],{"class":352},[346,632,392],{"class":352},[346,634,395],{"class":376},[346,636,398],{"class":356},[346,638,401],{"class":352},[346,640,404],{"class":356},[346,642,408],{"class":407},[346,644,411],{"class":356},[346,646,647,650,652,654,656],{"class":348,"line":485},[346,648,649],{"class":356},"        MyFrame frame ",[346,651,427],{"class":352},[346,653,430],{"class":352},[346,655,567],{"class":376},[346,657,658],{"class":356},"();\n",[346,660,661,663,665,667,669],{"class":348,"line":491},[346,662,460],{"class":356},[346,664,518],{"class":376},[346,666,398],{"class":356},[346,668,523],{"class":468},[346,670,442],{"class":356},[346,672,673],{"class":348,"line":502},[346,674,531],{"class":356},[346,676,677],{"class":348,"line":507},[346,678,537],{"class":356},[316,680,682],{"id":681},"agregar-componentes-a-un-jframe","Agregar Componentes a un JFrame",[304,684,685,686,688,689,692,693,695,696,698],{},"Una vez que tienes un ",[308,687,310],{},", puedes agregarle componentes gráficos como botones, etiquetas, paneles, etc. Para ello, utilizas el método ",[308,690,691],{},"add()"," del ",[308,694,310],{},". Aquí tienes un ejemplo de cómo agregar un botón a un ",[308,697,310],{},":",[337,700,702],{"className":339,"code":701,"language":341,"meta":342,"style":342},"import javax.swing.JButton;\nimport javax.swing.JFrame;\n\npublic class JFrameWithButton {\n    public static void main(String[] args) {\n        JFrame frame = new JFrame(\"Ventana con Botón\");\n        JButton button = new JButton(\"Haz clic aquí\");\n        \n        \u002F\u002F Agregar el botón al JFrame\n        frame.add(button);\n        \n        frame.setSize(400, 300);\n        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        frame.setVisible(true);\n    }\n}\n",[308,703,704,711,717,721,732,752,769,788,792,797,807,811,827,835,847,851],{"__ignoreMap":342},[346,705,706,708],{"class":348,"line":349},[346,707,353],{"class":352},[346,709,710],{"class":356}," javax.swing.JButton;\n",[346,712,713,715],{"class":348,"line":360},[346,714,353],{"class":352},[346,716,357],{"class":356},[346,718,719],{"class":348,"line":367},[346,720,364],{"emptyLinePlaceholder":363},[346,722,723,725,727,730],{"class":348,"line":383},[346,724,370],{"class":352},[346,726,373],{"class":352},[346,728,729],{"class":376}," JFrameWithButton",[346,731,380],{"class":356},[346,733,734,736,738,740,742,744,746,748,750],{"class":348,"line":414},[346,735,386],{"class":352},[346,737,389],{"class":352},[346,739,392],{"class":352},[346,741,395],{"class":376},[346,743,398],{"class":356},[346,745,401],{"class":352},[346,747,404],{"class":356},[346,749,408],{"class":407},[346,751,411],{"class":356},[346,753,754,756,758,760,762,764,767],{"class":348,"line":421},[346,755,424],{"class":356},[346,757,427],{"class":352},[346,759,430],{"class":352},[346,761,433],{"class":376},[346,763,398],{"class":356},[346,765,766],{"class":438},"\"Ventana con Botón\"",[346,768,442],{"class":356},[346,770,771,774,776,778,781,783,786],{"class":348,"line":445},[346,772,773],{"class":356},"        JButton button ",[346,775,427],{"class":352},[346,777,430],{"class":352},[346,779,780],{"class":376}," JButton",[346,782,398],{"class":356},[346,784,785],{"class":438},"\"Haz clic aquí\"",[346,787,442],{"class":356},[346,789,790],{"class":348,"line":451},[346,791,448],{"class":356},[346,793,794],{"class":348,"line":457},[346,795,796],{"class":417},"        \u002F\u002F Agregar el botón al JFrame\n",[346,798,799,801,804],{"class":348,"line":480},[346,800,460],{"class":356},[346,802,803],{"class":376},"add",[346,805,806],{"class":356},"(button);\n",[346,808,809],{"class":348,"line":485},[346,810,448],{"class":356},[346,812,813,815,817,819,821,823,825],{"class":348,"line":491},[346,814,460],{"class":356},[346,816,463],{"class":376},[346,818,398],{"class":356},[346,820,469],{"class":468},[346,822,472],{"class":356},[346,824,475],{"class":468},[346,826,442],{"class":356},[346,828,829,831,833],{"class":348,"line":502},[346,830,460],{"class":356},[346,832,496],{"class":376},[346,834,499],{"class":356},[346,836,837,839,841,843,845],{"class":348,"line":507},[346,838,460],{"class":356},[346,840,518],{"class":376},[346,842,398],{"class":356},[346,844,523],{"class":468},[346,846,442],{"class":356},[346,848,849],{"class":348,"line":513},[346,850,531],{"class":356},[346,852,853],{"class":348,"line":528},[346,854,537],{"class":356},[304,856,857,858,860,861,864,865,472,868,871],{},"Es importante tener en cuenta que él ",[308,859,310],{}," utiliza un administrador de diseño (layout manager) para organizar los componentes que contiene. El layout por defecto es ",[308,862,863],{},"BorderLayout",", pero puedes cambiarlo a otros layouts como ",[308,866,867],{},"FlowLayout",[308,869,870],{},"GridLayout",", etc.",[316,873,875],{"id":874},"atributos-comunes-de-jframe","Atributos Comunes de JFrame",[304,877,878,879,881],{},"Algunos de los atributos más comunes que puedes configurar en un ",[308,880,310],{}," incluyen:",[883,884,885,892,898,908,914,923,929,935,944,953,959,965],"ul",{},[886,887,888,891],"li",{},[308,889,890],{},"setTitle(String title)",": Establece el título de la ventana.",[886,893,894,897],{},[308,895,896],{},"setSize(int width, int height)",": Establece el tamaño de la ventana",[886,899,900,903,904,907],{},[308,901,902],{},"setDefaultCloseOperation(int operation)",": Define la operación que se realizará al cerrar la ventana (por ejemplo, ",[308,905,906],{},"JFrame.EXIT_ON_CLOSE",").",[886,909,910,913],{},[308,911,912],{},"setVisible(boolean b)",": Hace visible o invisible la ventana.",[886,915,916,919,920,922],{},[308,917,918],{},"setLayout(LayoutManager manager)",": Establece el administrador de diseño para organizar los componentes dentro del ",[308,921,310],{},".",[886,924,925,928],{},[308,926,927],{},"setResizable(boolean resizable)",": Permite o impide que la ventana sea redimensionable.",[886,930,931,934],{},[308,932,933],{},"setLocation(int x, int y)",": Establece la posición de la ventana en la pantalla.",[886,936,937,940,941,943],{},[308,938,939],{},"pack()",": Ajusta el tamaño del ",[308,942,310],{}," para que se adapte al tamaño preferido de sus componentes.",[886,945,946,949,950,952],{},[308,947,948],{},"getContentPane()",": Devuelve el contenedor principal del ",[308,951,310],{},", donde se agregan los componentes.",[886,954,955,958],{},[308,956,957],{},"setIconImage(Image image)",": Establece el icono de la ventana.",[886,960,961,964],{},[308,962,963],{},"setAlwaysOnTop(boolean alwaysOnTop)",": Hace que la ventana esté siempre encima de otras ventanas.",[886,966,967,970],{},[308,968,969],{},"setUndecorated(boolean undecorated)",": Permite crear una ventana sin bordes ni barra de título.",[304,972,973],{},"Estos atributos te permiten personalizar y controlar el comportamiento de tus ventanas en aplicaciones Swing de manera efectiva.",[316,975,977],{"id":976},"conclusión","Conclusión",[304,979,980,981,983],{},"El ",[308,982,310],{}," es un componente fundamental en la creación de interfaces gráficas con Java Swing. Te permite crear ventanas donde puedes agregar diversos componentes para interactuar con el usuario. A medida que avances en el desarrollo de aplicaciones Swing, aprenderás a utilizar otros componentes y layouts para crear interfaces más complejas y funcionales.",[985,986,987],"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 .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 pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}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":342,"searchDepth":360,"depth":360,"links":989},[990,991,992,993],{"id":318,"depth":360,"text":319},{"id":681,"depth":360,"text":682},{"id":874,"depth":360,"text":875},{"id":976,"depth":360,"text":977},"Aprende a usar el componente JFrame en Java Swing para crear ventanas en aplicaciones gráficas.","md",null,{"editButton":104},{"title":35,"description":994},"tti_vlVaDYDDPkDz_tMXBkFjAQyoYKGf2VNGuAZrNT8",[1001,1003],{"title":31,"path":32,"stem":33,"description":1002,"icon":25,"children":-1},"Aprende sobre los componentes básicos de Swing para construir interfaces gráficas en Java.",{"title":39,"path":40,"stem":41,"description":1004,"children":-1},"Aprende a usar el componente JPanel en Java Swing para organizar otros componentes gráficos.",1775101369567]