[{"data":1,"prerenderedAt":1258},["ShallowReactive",2],{"navigation_docs":3,"-gui-jbutton":298,"-gui-jbutton-surround":1253},[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":43,"body":300,"description":1247,"extension":1248,"links":1249,"meta":1250,"navigation":371,"path":44,"seo":1251,"stem":45,"__hash__":1252},"docs\u002F2.gui\u002F06.jbutton.md",{"type":301,"value":302,"toc":1241},"minimark",[303,315,320,336,599,606,610,619,725,731,954,957,961,980,1222,1228,1232,1237],[304,305,306,307,311,312,314],"p",{},"El componente ",[308,309,310],"code",{},"JButton"," en Java Swing es un botón interactivo que los usuarios pueden hacer clic para realizar acciones específicas en una aplicación gráfica. 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-jbutton","Creación de un JButton",[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 texto que se mostrará en el botón. 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.JButton;\nimport javax.swing.JFrame;\n\npublic class JButtonExample {\n    public static void main(String[] args) {\n        \u002F\u002F Crear una instancia de JFrame\n        JFrame frame = new JFrame(\"Ejemplo de JButton\");\n        \n        \u002F\u002F Crear un JButton con texto\n        JButton button = new JButton(\"Haz clic aquí\");\n        \n        \u002F\u002F Agregar el botón al JFrame\n        frame.add(button);\n        \n        \u002F\u002F Establecer el tamaño de la ventana\n        frame.setSize(300, 200);\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,366,373,389,420,427,451,457,463,483,488,494,506,511,517,539,544,550,561,566,572,587,593],{"__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.JButton;\n",[346,359,361,363],{"class":348,"line":360},2,[346,362,353],{"class":352},[346,364,365],{"class":356}," javax.swing.JFrame;\n",[346,367,369],{"class":348,"line":368},3,[346,370,372],{"emptyLinePlaceholder":371},true,"\n",[346,374,376,379,382,386],{"class":348,"line":375},4,[346,377,378],{"class":352},"public",[346,380,381],{"class":352}," class",[346,383,385],{"class":384},"svObZ"," JButtonExample",[346,387,388],{"class":356}," {\n",[346,390,392,395,398,401,404,407,410,413,417],{"class":348,"line":391},5,[346,393,394],{"class":352},"    public",[346,396,397],{"class":352}," static",[346,399,400],{"class":352}," void",[346,402,403],{"class":384}," main",[346,405,406],{"class":356},"(",[346,408,409],{"class":352},"String",[346,411,412],{"class":356},"[] ",[346,414,416],{"class":415},"s9osk","args",[346,418,419],{"class":356},") {\n",[346,421,423],{"class":348,"line":422},6,[346,424,426],{"class":425},"sAwPA","        \u002F\u002F Crear una instancia de JFrame\n",[346,428,430,433,436,439,442,444,448],{"class":348,"line":429},7,[346,431,432],{"class":356},"        JFrame frame ",[346,434,435],{"class":352},"=",[346,437,438],{"class":352}," new",[346,440,441],{"class":384}," JFrame",[346,443,406],{"class":356},[346,445,447],{"class":446},"sU2Wk","\"Ejemplo de JButton\"",[346,449,450],{"class":356},");\n",[346,452,454],{"class":348,"line":453},8,[346,455,456],{"class":356},"        \n",[346,458,460],{"class":348,"line":459},9,[346,461,462],{"class":425},"        \u002F\u002F Crear un JButton con texto\n",[346,464,466,469,471,473,476,478,481],{"class":348,"line":465},10,[346,467,468],{"class":356},"        JButton button ",[346,470,435],{"class":352},[346,472,438],{"class":352},[346,474,475],{"class":384}," JButton",[346,477,406],{"class":356},[346,479,480],{"class":446},"\"Haz clic aquí\"",[346,482,450],{"class":356},[346,484,486],{"class":348,"line":485},11,[346,487,456],{"class":356},[346,489,491],{"class":348,"line":490},12,[346,492,493],{"class":425},"        \u002F\u002F Agregar el botón al JFrame\n",[346,495,497,500,503],{"class":348,"line":496},13,[346,498,499],{"class":356},"        frame.",[346,501,502],{"class":384},"add",[346,504,505],{"class":356},"(button);\n",[346,507,509],{"class":348,"line":508},14,[346,510,456],{"class":356},[346,512,514],{"class":348,"line":513},15,[346,515,516],{"class":425},"        \u002F\u002F Establecer el tamaño de la ventana\n",[346,518,520,522,525,527,531,534,537],{"class":348,"line":519},16,[346,521,499],{"class":356},[346,523,524],{"class":384},"setSize",[346,526,406],{"class":356},[346,528,530],{"class":529},"sDLfK","300",[346,532,533],{"class":356},", ",[346,535,536],{"class":529},"200",[346,538,450],{"class":356},[346,540,542],{"class":348,"line":541},17,[346,543,456],{"class":356},[346,545,547],{"class":348,"line":546},18,[346,548,549],{"class":425},"        \u002F\u002F Configurar la operación de cierre\n",[346,551,553,555,558],{"class":348,"line":552},19,[346,554,499],{"class":356},[346,556,557],{"class":384},"setDefaultCloseOperation",[346,559,560],{"class":356},"(JFrame.EXIT_ON_CLOSE);\n",[346,562,564],{"class":348,"line":563},20,[346,565,456],{"class":356},[346,567,569],{"class":348,"line":568},21,[346,570,571],{"class":425},"        \u002F\u002F Hacer visible la ventana\n",[346,573,575,577,580,582,585],{"class":348,"line":574},22,[346,576,499],{"class":356},[346,578,579],{"class":384},"setVisible",[346,581,406],{"class":356},[346,583,584],{"class":529},"true",[346,586,450],{"class":356},[346,588,590],{"class":348,"line":589},23,[346,591,592],{"class":356},"    }\n",[346,594,596],{"class":348,"line":595},24,[346,597,598],{"class":356},"}\n",[304,600,601,602,605],{},"En este ejemplo, hemos creado un botón con el texto \"Haz clic aquí\" y lo hemos agregado a un ",[308,603,604],{},"JFrame",". Cuando ejecutes este código, verás una ventana con el botón.",[316,607,609],{"id":608},"personalización-de-un-jbutton","Personalización de un JButton",[304,611,612,613,615,616,618],{},"Puedes personalizar un ",[308,614,310],{}," de varias maneras, como cambiar su color, fuente, tamaño y agregar iconos. Para ellos usaremos algunos métodos disponibles en la clase ",[308,617,310],{}," que son los siguientes:",[620,621,622,629,635,641,647,653,659,665,671,677,683,689,695,701,707,713,719],"ul",{},[623,624,625,628],"li",{},[308,626,627],{},"setText(String text)",": Cambia el texto del botón.",[623,630,631,634],{},[308,632,633],{},"setBackground(Color color)",": Cambia el color de fondo del botón.",[623,636,637,640],{},[308,638,639],{},"setForeground(Color color)",": Cambia el color del texto del botón.",[623,642,643,646],{},[308,644,645],{},"setFont(Font font)",": Cambia la fuente del texto del botón.",[623,648,649,652],{},[308,650,651],{},"setIcon(Icon icon)",": Establece un icono en el botón.",[623,654,655,658],{},[308,656,657],{},"setEnabled(boolean enabled)",": Habilita o deshabilita el botón.",[623,660,661,664],{},[308,662,663],{},"addActionListener(ActionListener listener)",": Agrega un listener para manejar eventos de clic en el botón.",[623,666,667,670],{},[308,668,669],{},"setToolTipText(String text)",": Establece un texto de ayuda que se muestra al pasar el cursor sobre el botón.",[623,672,673,676],{},[308,674,675],{},"setMargin(Insets insets)",": Establece los márgenes alrededor del texto o icono del botón.",[623,678,679,682],{},[308,680,681],{},"setPreferredSize(Dimension dimension)",": Establece el tamaño preferido del botón.",[623,684,685,688],{},[308,686,687],{},"setBorder(Border border)",": Establece el borde del botón.",[623,690,691,694],{},[308,692,693],{},"setRolloverEnabled(boolean enabled)",": Habilita o deshabilita el efecto de rollover cuando el cursor pasa sobre el botón.",[623,696,697,700],{},[308,698,699],{},"setContentAreaFilled(boolean filled)",": Controla si el área de contenido del botón se rellena con el color de fondo.",[623,702,703,706],{},[308,704,705],{},"setFocusPainted(boolean painted)",": Controla si se pinta el borde de enfoque cuando el botón tiene el foco.",[623,708,709,712],{},[308,710,711],{},"setMnemonic(char mnemonic)",": Establece una tecla de acceso rápido para el botón.",[623,714,715,718],{},[308,716,717],{},"setOpaque(boolean isOpaque)",": Controla si el botón es opaco o transparente.",[623,720,721,724],{},[308,722,723],{},"setVisible(boolean visible)",": Controla la visibilidad del botón.",[304,726,727,728,730],{},"Aquí tienes un ejemplo de cómo personalizar un ",[308,729,310],{},":",[337,732,734],{"className":339,"code":733,"language":341,"meta":342,"style":342},"import javax.swing.JButton;\nimport javax.swing.JFrame;\nimport java.awt.Color;\nimport java.awt.Font;\n\npublic class CustomJButtonExample {\n    public static void main(String[] args) {\n        JFrame frame = new JFrame(\"Botón Personalizado\");\n        JButton button = new JButton(\"Botón Personalizado\");\n        \n        \u002F\u002F Personalizar el botón\n        button.setBackground(Color.BLUE);\n        button.setForeground(Color.WHITE);\n        button.setFont(new Font(\"Arial\", Font.BOLD, 16));\n        \n        \u002F\u002F Agregar el botón al frame\n        frame.add(button);\n        \n        frame.setSize(300, 200);\n        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        frame.setVisible(true);\n    }\n}\n",[308,735,736,742,748,755,762,766,777,797,814,830,834,839,850,860,889,893,898,906,910,926,934,946,950],{"__ignoreMap":342},[346,737,738,740],{"class":348,"line":349},[346,739,353],{"class":352},[346,741,357],{"class":356},[346,743,744,746],{"class":348,"line":360},[346,745,353],{"class":352},[346,747,365],{"class":356},[346,749,750,752],{"class":348,"line":368},[346,751,353],{"class":352},[346,753,754],{"class":356}," java.awt.Color;\n",[346,756,757,759],{"class":348,"line":375},[346,758,353],{"class":352},[346,760,761],{"class":356}," java.awt.Font;\n",[346,763,764],{"class":348,"line":391},[346,765,372],{"emptyLinePlaceholder":371},[346,767,768,770,772,775],{"class":348,"line":422},[346,769,378],{"class":352},[346,771,381],{"class":352},[346,773,774],{"class":384}," CustomJButtonExample",[346,776,388],{"class":356},[346,778,779,781,783,785,787,789,791,793,795],{"class":348,"line":429},[346,780,394],{"class":352},[346,782,397],{"class":352},[346,784,400],{"class":352},[346,786,403],{"class":384},[346,788,406],{"class":356},[346,790,409],{"class":352},[346,792,412],{"class":356},[346,794,416],{"class":415},[346,796,419],{"class":356},[346,798,799,801,803,805,807,809,812],{"class":348,"line":453},[346,800,432],{"class":356},[346,802,435],{"class":352},[346,804,438],{"class":352},[346,806,441],{"class":384},[346,808,406],{"class":356},[346,810,811],{"class":446},"\"Botón Personalizado\"",[346,813,450],{"class":356},[346,815,816,818,820,822,824,826,828],{"class":348,"line":459},[346,817,468],{"class":356},[346,819,435],{"class":352},[346,821,438],{"class":352},[346,823,475],{"class":384},[346,825,406],{"class":356},[346,827,811],{"class":446},[346,829,450],{"class":356},[346,831,832],{"class":348,"line":465},[346,833,456],{"class":356},[346,835,836],{"class":348,"line":485},[346,837,838],{"class":425},"        \u002F\u002F Personalizar el botón\n",[346,840,841,844,847],{"class":348,"line":490},[346,842,843],{"class":356},"        button.",[346,845,846],{"class":384},"setBackground",[346,848,849],{"class":356},"(Color.BLUE);\n",[346,851,852,854,857],{"class":348,"line":496},[346,853,843],{"class":356},[346,855,856],{"class":384},"setForeground",[346,858,859],{"class":356},"(Color.WHITE);\n",[346,861,862,864,867,869,872,875,877,880,883,886],{"class":348,"line":508},[346,863,843],{"class":356},[346,865,866],{"class":384},"setFont",[346,868,406],{"class":356},[346,870,871],{"class":352},"new",[346,873,874],{"class":384}," Font",[346,876,406],{"class":356},[346,878,879],{"class":446},"\"Arial\"",[346,881,882],{"class":356},", Font.BOLD, ",[346,884,885],{"class":529},"16",[346,887,888],{"class":356},"));\n",[346,890,891],{"class":348,"line":513},[346,892,456],{"class":356},[346,894,895],{"class":348,"line":519},[346,896,897],{"class":425},"        \u002F\u002F Agregar el botón al frame\n",[346,899,900,902,904],{"class":348,"line":541},[346,901,499],{"class":356},[346,903,502],{"class":384},[346,905,505],{"class":356},[346,907,908],{"class":348,"line":546},[346,909,456],{"class":356},[346,911,912,914,916,918,920,922,924],{"class":348,"line":552},[346,913,499],{"class":356},[346,915,524],{"class":384},[346,917,406],{"class":356},[346,919,530],{"class":529},[346,921,533],{"class":356},[346,923,536],{"class":529},[346,925,450],{"class":356},[346,927,928,930,932],{"class":348,"line":563},[346,929,499],{"class":356},[346,931,557],{"class":384},[346,933,560],{"class":356},[346,935,936,938,940,942,944],{"class":348,"line":568},[346,937,499],{"class":356},[346,939,579],{"class":384},[346,941,406],{"class":356},[346,943,584],{"class":529},[346,945,450],{"class":356},[346,947,948],{"class":348,"line":574},[346,949,592],{"class":356},[346,951,952],{"class":348,"line":589},[346,953,598],{"class":356},[304,955,956],{},"En este ejemplo, hemos creado un botón personalizado con un fondo azul, texto blanco y una fuente Arial en negrita de tamaño 16.",[316,958,960],{"id":959},"manejo-de-eventos-en-jbutton","Manejo de eventos en JButton",[304,962,963,964,966,967,970,971,973,974,977,978,730],{},"Para que un ",[308,965,310],{}," realice una acción cuando se hace clic en él, debes agregar un ",[308,968,969],{},"ActionListener",". El ",[308,972,969],{}," es una interfaz que contiene el método ",[308,975,976],{},"actionPerformed",", que se ejecuta cuando se produce un evento de acción, como un clic en el botón. Aquí tienes un ejemplo de cómo manejar eventos en un ",[308,979,310],{},[337,981,983],{"className":339,"code":982,"language":341,"meta":342,"style":342},"import javax.swing.JButton;\nimport javax.swing.JFrame;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\n\npublic class JButtonActionExample {\n    public static void main(String[] args) {\n        JFrame frame = new JFrame(\"Ejemplo de Acción en JButton\");\n        JButton button = new JButton(\"Haz clic aquí\");\n        \n        \u002F\u002F Agregar un ActionListener al botón\n        button.addActionListener(new ActionListener() {\n            @Override\n            public void actionPerformed(ActionEvent e) {\n                System.out.println(\"¡Botón clickeado!\");\n            }\n        });\n        \n        \u002F\u002F Agregar el botón al frame\n        frame.add(button);\n        \n        frame.setSize(300, 200);\n        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        frame.setVisible(true);\n    }\n}\n",[308,984,985,991,997,1004,1011,1015,1026,1046,1063,1079,1083,1088,1105,1113,1131,1146,1151,1156,1160,1164,1172,1176,1192,1200,1212,1217],{"__ignoreMap":342},[346,986,987,989],{"class":348,"line":349},[346,988,353],{"class":352},[346,990,357],{"class":356},[346,992,993,995],{"class":348,"line":360},[346,994,353],{"class":352},[346,996,365],{"class":356},[346,998,999,1001],{"class":348,"line":368},[346,1000,353],{"class":352},[346,1002,1003],{"class":356}," java.awt.event.ActionEvent;\n",[346,1005,1006,1008],{"class":348,"line":375},[346,1007,353],{"class":352},[346,1009,1010],{"class":356}," java.awt.event.ActionListener;\n",[346,1012,1013],{"class":348,"line":391},[346,1014,372],{"emptyLinePlaceholder":371},[346,1016,1017,1019,1021,1024],{"class":348,"line":422},[346,1018,378],{"class":352},[346,1020,381],{"class":352},[346,1022,1023],{"class":384}," JButtonActionExample",[346,1025,388],{"class":356},[346,1027,1028,1030,1032,1034,1036,1038,1040,1042,1044],{"class":348,"line":429},[346,1029,394],{"class":352},[346,1031,397],{"class":352},[346,1033,400],{"class":352},[346,1035,403],{"class":384},[346,1037,406],{"class":356},[346,1039,409],{"class":352},[346,1041,412],{"class":356},[346,1043,416],{"class":415},[346,1045,419],{"class":356},[346,1047,1048,1050,1052,1054,1056,1058,1061],{"class":348,"line":453},[346,1049,432],{"class":356},[346,1051,435],{"class":352},[346,1053,438],{"class":352},[346,1055,441],{"class":384},[346,1057,406],{"class":356},[346,1059,1060],{"class":446},"\"Ejemplo de Acción en JButton\"",[346,1062,450],{"class":356},[346,1064,1065,1067,1069,1071,1073,1075,1077],{"class":348,"line":459},[346,1066,468],{"class":356},[346,1068,435],{"class":352},[346,1070,438],{"class":352},[346,1072,475],{"class":384},[346,1074,406],{"class":356},[346,1076,480],{"class":446},[346,1078,450],{"class":356},[346,1080,1081],{"class":348,"line":465},[346,1082,456],{"class":356},[346,1084,1085],{"class":348,"line":485},[346,1086,1087],{"class":425},"        \u002F\u002F Agregar un ActionListener al botón\n",[346,1089,1090,1092,1095,1097,1099,1102],{"class":348,"line":490},[346,1091,843],{"class":356},[346,1093,1094],{"class":384},"addActionListener",[346,1096,406],{"class":356},[346,1098,871],{"class":352},[346,1100,1101],{"class":384}," ActionListener",[346,1103,1104],{"class":356},"() {\n",[346,1106,1107,1110],{"class":348,"line":496},[346,1108,1109],{"class":356},"            @",[346,1111,1112],{"class":352},"Override\n",[346,1114,1115,1118,1120,1123,1126,1129],{"class":348,"line":508},[346,1116,1117],{"class":352},"            public",[346,1119,400],{"class":352},[346,1121,1122],{"class":384}," actionPerformed",[346,1124,1125],{"class":356},"(ActionEvent ",[346,1127,1128],{"class":415},"e",[346,1130,419],{"class":356},[346,1132,1133,1136,1139,1141,1144],{"class":348,"line":513},[346,1134,1135],{"class":356},"                System.out.",[346,1137,1138],{"class":384},"println",[346,1140,406],{"class":356},[346,1142,1143],{"class":446},"\"¡Botón clickeado!\"",[346,1145,450],{"class":356},[346,1147,1148],{"class":348,"line":519},[346,1149,1150],{"class":356},"            }\n",[346,1152,1153],{"class":348,"line":541},[346,1154,1155],{"class":356},"        });\n",[346,1157,1158],{"class":348,"line":546},[346,1159,456],{"class":356},[346,1161,1162],{"class":348,"line":552},[346,1163,897],{"class":425},[346,1165,1166,1168,1170],{"class":348,"line":563},[346,1167,499],{"class":356},[346,1169,502],{"class":384},[346,1171,505],{"class":356},[346,1173,1174],{"class":348,"line":568},[346,1175,456],{"class":356},[346,1177,1178,1180,1182,1184,1186,1188,1190],{"class":348,"line":574},[346,1179,499],{"class":356},[346,1181,524],{"class":384},[346,1183,406],{"class":356},[346,1185,530],{"class":529},[346,1187,533],{"class":356},[346,1189,536],{"class":529},[346,1191,450],{"class":356},[346,1193,1194,1196,1198],{"class":348,"line":589},[346,1195,499],{"class":356},[346,1197,557],{"class":384},[346,1199,560],{"class":356},[346,1201,1202,1204,1206,1208,1210],{"class":348,"line":595},[346,1203,499],{"class":356},[346,1205,579],{"class":384},[346,1207,406],{"class":356},[346,1209,584],{"class":529},[346,1211,450],{"class":356},[346,1213,1215],{"class":348,"line":1214},25,[346,1216,592],{"class":356},[346,1218,1220],{"class":348,"line":1219},26,[346,1221,598],{"class":356},[304,1223,1224,1225,1227],{},"En este ejemplo, hemos agregado un ",[308,1226,969],{}," al botón que imprime un mensaje en la consola cuando se hace clic en él.",[316,1229,1231],{"id":1230},"conclusión","Conclusión",[304,1233,306,1234,1236],{},[308,1235,310],{}," es una herramienta esencial en la creación de interfaces gráficas en Java Swing. Permite a los usuarios interactuar con la aplicación a través de botones personalizables y manejables mediante eventos. Con los conocimientos adquiridos en este capítulo, podrás crear botones efectivos y atractivos para tus aplicaciones Java Swing. ¡Experimenta con diferentes personalizaciones y funcionalidades para mejorar la experiencia del usuario!",[1238,1239,1240],"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":1242},[1243,1244,1245,1246],{"id":318,"depth":360,"text":319},{"id":608,"depth":360,"text":609},{"id":959,"depth":360,"text":960},{"id":1230,"depth":360,"text":1231},"Aprende a usar el componente JButton en Java Swing para crear botones interactivos en aplicaciones gráficas.","md",null,{"editButton":104},{"title":43,"description":1247},"LL3mLVqb6XH6n1YLnotburGxNl2_2cmQD5m74xyvvwI",[1254,1256],{"title":39,"path":40,"stem":41,"description":1255,"children":-1},"Aprende a usar el componente JPanel en Java Swing para organizar otros componentes gráficos.",{"title":47,"path":48,"stem":49,"description":1257,"icon":25,"children":-1},"Aprende a utilizar componentes de texto en interfaces gráficas utilizando la biblioteca Swing de Java.",1775101369893]