[{"data":1,"prerenderedAt":952},["ShallowReactive",2],{"navigation_docs":3,"-gui-atributos-comunes":298,"-gui-atributos-comunes-surround":947},[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":63,"body":300,"description":940,"extension":941,"links":942,"meta":943,"navigation":944,"path":64,"seo":945,"stem":65,"__hash__":946},"docs\u002F2.gui\u002F11.atributos-comunes.md",{"type":301,"value":302,"toc":928},"minimark",[303,316,321,339,401,405,418,458,462,471,507,511,515,524,572,575,579,594,666,669,673,682,722,726,735,768,772,781,819,823,835,896,900,924],[304,305,306,307,311,312,315],"p",{},"En esta sección, exploraremos los atributos comunes que puedes configurar en los componentes de diseño de Swing, como ",[308,309,310],"code",{},"JPanel",", ",[308,313,314],{},"JFrame"," y otros contenedores. Estos atributos te permiten personalizar la apariencia y el comportamiento de los componentes gráficos en tu aplicación. A continuación, se describen algunos de los atributos más comunes y su uso.",[317,318,320],"h2",{"id":319},"background-y-foreground","Background y Foreground",[304,322,323,324,327,328,331,332,327,335,338],{},"Los atributos ",[308,325,326],{},"background"," y ",[308,329,330],{},"foreground"," se utilizan para establecer los colores de fondo y primer plano (texto) de los componentes. Puedes configurar estos atributos utilizando el método ",[308,333,334],{},"setBackground(Color color)",[308,336,337],{},"setForeground(Color color)",". Aquí tienes un ejemplo:",[340,341,346],"pre",{"className":342,"code":343,"language":344,"meta":345,"style":345},"language-java shiki shiki-themes github-dark","JPanel panel = new JPanel();\npanel.setBackground(Color.LIGHT_GRAY); \u002F\u002F Color de fondo gris claro\npanel.setForeground(Color.BLACK); \u002F\u002F Color de texto\n","java","",[308,347,348,371,387],{"__ignoreMap":345},[349,350,353,357,361,364,368],"span",{"class":351,"line":352},"line",1,[349,354,356],{"class":355},"s95oV","JPanel panel ",[349,358,360],{"class":359},"snl16","=",[349,362,363],{"class":359}," new",[349,365,367],{"class":366},"svObZ"," JPanel",[349,369,370],{"class":355},"();\n",[349,372,374,377,380,383],{"class":351,"line":373},2,[349,375,376],{"class":355},"panel.",[349,378,379],{"class":366},"setBackground",[349,381,382],{"class":355},"(Color.LIGHT_GRAY); ",[349,384,386],{"class":385},"sAwPA","\u002F\u002F Color de fondo gris claro\n",[349,388,390,392,395,398],{"class":351,"line":389},3,[349,391,376],{"class":355},[349,393,394],{"class":366},"setForeground",[349,396,397],{"class":355},"(Color.BLACK); ",[349,399,400],{"class":385},"\u002F\u002F Color de texto\n",[317,402,404],{"id":403},"border","Border",[304,406,407,408,410,411,414,415,417],{},"El atributo ",[308,409,403],{}," se utiliza para definir un borde alrededor de un componente. Puedes establecer un borde utilizando el método ",[308,412,413],{},"setBorder(Border border)",". Aquí tienes un ejemplo de cómo agregar un borde a un ",[308,416,310],{},":",[340,419,421],{"className":342,"code":420,"language":344,"meta":345,"style":345},"JPanel panel = new JPanel();\npanel.setBorder(BorderFactory.createTitledBorder(\"Mi Panel\"));\n",[308,422,423,435],{"__ignoreMap":345},[349,424,425,427,429,431,433],{"class":351,"line":352},[349,426,356],{"class":355},[349,428,360],{"class":359},[349,430,363],{"class":359},[349,432,367],{"class":366},[349,434,370],{"class":355},[349,436,437,439,442,445,448,451,455],{"class":351,"line":373},[349,438,376],{"class":355},[349,440,441],{"class":366},"setBorder",[349,443,444],{"class":355},"(BorderFactory.",[349,446,447],{"class":366},"createTitledBorder",[349,449,450],{"class":355},"(",[349,452,454],{"class":453},"sU2Wk","\"Mi Panel\"",[349,456,457],{"class":355},"));\n",[317,459,461],{"id":460},"opacity","Opacity",[304,463,407,464,466,467,470],{},[308,465,460],{}," determina si un componente es opaco o transparente. Puedes configurar este atributo utilizando el método ",[308,468,469],{},"setOpaque(boolean isOpaque)",". Un componente opaco no permite que se vea a través de él, mientras que un componente transparente sí lo permite. Aquí tienes un ejemplo:",[340,472,474],{"className":342,"code":473,"language":344,"meta":345,"style":345},"JPanel panel = new JPanel();\npanel.setOpaque(true); \u002F\u002F El panel es opaco\n",[308,475,476,488],{"__ignoreMap":345},[349,477,478,480,482,484,486],{"class":351,"line":352},[349,479,356],{"class":355},[349,481,360],{"class":359},[349,483,363],{"class":359},[349,485,367],{"class":366},[349,487,370],{"class":355},[349,489,490,492,495,497,501,504],{"class":351,"line":373},[349,491,376],{"class":355},[349,493,494],{"class":366},"setOpaque",[349,496,450],{"class":355},[349,498,500],{"class":499},"sDLfK","true",[349,502,503],{"class":355},"); ",[349,505,506],{"class":385},"\u002F\u002F El panel es opaco\n",[508,509,510],"note",{},"Es importante tener en cuenta que algunos componentes pueden tener comportamientos predeterminados en cuanto a la opacidad, por lo que es recomendable verificar la documentación específica de cada componente.",[317,512,514],{"id":513},"tamaño-preferido","Tamaño Preferido",[304,516,407,517,520,521,338],{},[308,518,519],{},"preferredSize"," se utiliza para definir el tamaño preferido de un componente. Puedes establecer este atributo utilizando el método ",[308,522,523],{},"setPreferredSize(Dimension dimension)",[340,525,527],{"className":342,"code":526,"language":344,"meta":345,"style":345},"JPanel panel = new JPanel();\npanel.setPreferredSize(new Dimension(300, 200)); \u002F\u002F Tamaño preferido de 300x200 píxeles\n",[308,528,529,541],{"__ignoreMap":345},[349,530,531,533,535,537,539],{"class":351,"line":352},[349,532,356],{"class":355},[349,534,360],{"class":359},[349,536,363],{"class":359},[349,538,367],{"class":366},[349,540,370],{"class":355},[349,542,543,545,548,550,553,556,558,561,563,566,569],{"class":351,"line":373},[349,544,376],{"class":355},[349,546,547],{"class":366},"setPreferredSize",[349,549,450],{"class":355},[349,551,552],{"class":359},"new",[349,554,555],{"class":366}," Dimension",[349,557,450],{"class":355},[349,559,560],{"class":499},"300",[349,562,311],{"class":355},[349,564,565],{"class":499},"200",[349,567,568],{"class":355},")); ",[349,570,571],{"class":385},"\u002F\u002F Tamaño preferido de 300x200 píxeles\n",[508,573,574],{},"El tamaño preferido es una sugerencia para el administrador de diseño (layout manager) sobre cómo debería dimensionar el componente. El administrador de diseño puede o no respetar este tamaño dependiendo del layout utilizado.",[317,576,578],{"id":577},"tamaño-mínimo-y-máximo","Tamaño Mínimo y Máximo",[304,580,323,581,327,584,587,588,327,591,338],{},[308,582,583],{},"minimumSize",[308,585,586],{},"maximumSize"," se utilizan para definir los tamaños mínimo y máximo de un componente. Puedes establecer estos atributos utilizando los métodos ",[308,589,590],{},"setMinimumSize(Dimension dimension)",[308,592,593],{},"setMaximumSize(Dimension dimension)",[340,595,597],{"className":342,"code":596,"language":344,"meta":345,"style":345},"JPanel panel = new JPanel();\npanel.setMinimumSize(new Dimension(100, 100)); \u002F\u002F Tamaño mínimo de 100x100 píxeles\npanel.setMaximumSize(new Dimension(500, 400)); \u002F\u002F Tamaño máximo de 500x400 píxeles\n",[308,598,599,611,638],{"__ignoreMap":345},[349,600,601,603,605,607,609],{"class":351,"line":352},[349,602,356],{"class":355},[349,604,360],{"class":359},[349,606,363],{"class":359},[349,608,367],{"class":366},[349,610,370],{"class":355},[349,612,613,615,618,620,622,624,626,629,631,633,635],{"class":351,"line":373},[349,614,376],{"class":355},[349,616,617],{"class":366},"setMinimumSize",[349,619,450],{"class":355},[349,621,552],{"class":359},[349,623,555],{"class":366},[349,625,450],{"class":355},[349,627,628],{"class":499},"100",[349,630,311],{"class":355},[349,632,628],{"class":499},[349,634,568],{"class":355},[349,636,637],{"class":385},"\u002F\u002F Tamaño mínimo de 100x100 píxeles\n",[349,639,640,642,645,647,649,651,653,656,658,661,663],{"class":351,"line":389},[349,641,376],{"class":355},[349,643,644],{"class":366},"setMaximumSize",[349,646,450],{"class":355},[349,648,552],{"class":359},[349,650,555],{"class":366},[349,652,450],{"class":355},[349,654,655],{"class":499},"500",[349,657,311],{"class":355},[349,659,660],{"class":499},"400",[349,662,568],{"class":355},[349,664,665],{"class":385},"\u002F\u002F Tamaño máximo de 500x400 píxeles\n",[304,667,668],{},"Estos atributos son útiles para controlar cómo se redimensionan los componentes dentro de un contenedor y asegurar que no se vuelvan demasiado pequeños o demasiado grandes.",[317,670,672],{"id":671},"tooltip-text","ToolTip Text",[304,674,407,675,678,679,338],{},[308,676,677],{},"toolTipText"," se utiliza para proporcionar información adicional cuando el usuario pasa el cursor sobre un componente. Puedes establecer este atributo utilizando el método ",[308,680,681],{},"setToolTipText(String text)",[340,683,685],{"className":342,"code":684,"language":344,"meta":345,"style":345},"JButton button = new JButton(\"Haz clic aquí\");\nbutton.setToolTipText(\"Este es un botón de ejemplo\");\n",[308,686,687,707],{"__ignoreMap":345},[349,688,689,692,694,696,699,701,704],{"class":351,"line":352},[349,690,691],{"class":355},"JButton button ",[349,693,360],{"class":359},[349,695,363],{"class":359},[349,697,698],{"class":366}," JButton",[349,700,450],{"class":355},[349,702,703],{"class":453},"\"Haz clic aquí\"",[349,705,706],{"class":355},");\n",[349,708,709,712,715,717,720],{"class":351,"line":373},[349,710,711],{"class":355},"button.",[349,713,714],{"class":366},"setToolTipText",[349,716,450],{"class":355},[349,718,719],{"class":453},"\"Este es un botón de ejemplo\"",[349,721,706],{"class":355},[317,723,725],{"id":724},"visibilidad","Visibilidad",[304,727,407,728,731,732,338],{},[308,729,730],{},"visible"," determina si un componente es visible o no en la interfaz gráfica. Puedes configurar este atributo utilizando el método ",[308,733,734],{},"setVisible(boolean visible)",[340,736,738],{"className":342,"code":737,"language":344,"meta":345,"style":345},"JPanel panel = new JPanel();\npanel.setVisible(true); \u002F\u002F El panel es visible\n",[308,739,740,752],{"__ignoreMap":345},[349,741,742,744,746,748,750],{"class":351,"line":352},[349,743,356],{"class":355},[349,745,360],{"class":359},[349,747,363],{"class":359},[349,749,367],{"class":366},[349,751,370],{"class":355},[349,753,754,756,759,761,763,765],{"class":351,"line":373},[349,755,376],{"class":355},[349,757,758],{"class":366},"setVisible",[349,760,450],{"class":355},[349,762,500],{"class":499},[349,764,503],{"class":355},[349,766,767],{"class":385},"\u002F\u002F El panel es visible\n",[317,769,771],{"id":770},"habilitación","Habilitación",[304,773,407,774,777,778,338],{},[308,775,776],{},"enabled"," determina si un componente está habilitado o deshabilitado para la interacción del usuario. Puedes configurar este atributo utilizando el método ",[308,779,780],{},"setEnabled(boolean enabled)",[340,782,784],{"className":342,"code":783,"language":344,"meta":345,"style":345},"JButton button = new JButton(\"Haz clic aquí\");\nbutton.setEnabled(false); \u002F\u002F El botón está deshabilitado\n",[308,785,786,802],{"__ignoreMap":345},[349,787,788,790,792,794,796,798,800],{"class":351,"line":352},[349,789,691],{"class":355},[349,791,360],{"class":359},[349,793,363],{"class":359},[349,795,698],{"class":366},[349,797,450],{"class":355},[349,799,703],{"class":453},[349,801,706],{"class":355},[349,803,804,806,809,811,814,816],{"class":351,"line":373},[349,805,711],{"class":355},[349,807,808],{"class":366},"setEnabled",[349,810,450],{"class":355},[349,812,813],{"class":499},"false",[349,815,503],{"class":355},[349,817,818],{"class":385},"\u002F\u002F El botón está deshabilitado\n",[317,820,822],{"id":821},"dispose","Dispose",[304,824,407,825,827,828,831,832,834],{},[308,826,821],{}," se utiliza para liberar los recursos asociados a un componente cuando ya no es necesario. Puedes llamar al método ",[308,829,830],{},"dispose()"," en un componente para liberar los recursos que utiliza. Esto es especialmente importante para componentes como ",[308,833,314],{}," que pueden consumir recursos del sistema. Aquí tienes un ejemplo:",[340,836,838],{"className":342,"code":837,"language":344,"meta":345,"style":345},"JFrame frame = new JFrame(\"Mi Ventana\");\n\u002F\u002F Configuración del frame\nframe.setVisible(true);\n\u002F\u002F Cuando ya no se necesite el frame\nframe.dispose(); \u002F\u002F Libera los recursos asociados al frame\n",[308,839,840,859,864,877,883],{"__ignoreMap":345},[349,841,842,845,847,849,852,854,857],{"class":351,"line":352},[349,843,844],{"class":355},"JFrame frame ",[349,846,360],{"class":359},[349,848,363],{"class":359},[349,850,851],{"class":366}," JFrame",[349,853,450],{"class":355},[349,855,856],{"class":453},"\"Mi Ventana\"",[349,858,706],{"class":355},[349,860,861],{"class":351,"line":373},[349,862,863],{"class":385},"\u002F\u002F Configuración del frame\n",[349,865,866,869,871,873,875],{"class":351,"line":389},[349,867,868],{"class":355},"frame.",[349,870,758],{"class":366},[349,872,450],{"class":355},[349,874,500],{"class":499},[349,876,706],{"class":355},[349,878,880],{"class":351,"line":879},4,[349,881,882],{"class":385},"\u002F\u002F Cuando ya no se necesite el frame\n",[349,884,886,888,890,893],{"class":351,"line":885},5,[349,887,868],{"class":355},[349,889,821],{"class":366},[349,891,892],{"class":355},"(); ",[349,894,895],{"class":385},"\u002F\u002F Libera los recursos asociados al frame\n",[317,897,899],{"id":898},"resumen","Resumen",[304,901,902,903,311,905,311,907,311,909,311,911,311,913,311,915,311,917,311,919,327,921,923],{},"En esta sección, hemos explorado varios atributos comunes que puedes configurar en los componentes de diseño de Swing, como ",[308,904,326],{},[308,906,330],{},[308,908,403],{},[308,910,460],{},[308,912,519],{},[308,914,583],{},[308,916,586],{},[308,918,677],{},[308,920,730],{},[308,922,776],{},". Estos atributos te permiten personalizar la apariencia y el comportamiento de los componentes gráficos en tu aplicación Swing. A medida que avances en el desarrollo de interfaces gráficas, podrás utilizar estos atributos para crear aplicaciones más atractivas y funcionales.",[925,926,927],"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 .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}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 .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}",{"title":345,"searchDepth":373,"depth":373,"links":929},[930,931,932,933,934,935,936,937,938,939],{"id":319,"depth":373,"text":320},{"id":403,"depth":373,"text":404},{"id":460,"depth":373,"text":461},{"id":513,"depth":373,"text":514},{"id":577,"depth":373,"text":578},{"id":671,"depth":373,"text":672},{"id":724,"depth":373,"text":725},{"id":770,"depth":373,"text":771},{"id":821,"depth":373,"text":822},{"id":898,"depth":373,"text":899},"Aprende sobre los atributos comunes que puedes configurar en los componentes de diseño de Swing.","md",null,{"editButton":104},{"icon":25},{"title":63,"description":940},"UZUTyRr0wXUSj4tkZf4HdRG8t11EzeJX2C8YOpKGRBo",[948,950],{"title":59,"path":60,"stem":61,"description":949,"icon":25,"children":-1},"Aprende a utilizar controles comunes en Java Swing como botones, etiquetas y campos de texto.",{"title":67,"path":68,"stem":69,"description":951,"icon":25,"children":-1},"Aprende sobre los diferentes tipos de layouts en Java Swing para organizar los componentes de tu interfaz gráfica de manera efectiva.",1775101370780]