> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/exercicios-java/ud5-exercicios/interfaces-graficas.md).

# Interfaces gráficas

1. Define unha clase de ventana personalizada, que conteña un panelDeBotones.
   1. Engade o panel un botón que se chame contador.
   2. Cada vez que o botón contador sexa pulsado, debe de incrementarse un contador de pulsacións e debe de mostrarse o seu valor por pantalla.
   3. A clase VentanaPersonalizada debe de poder devolver todos os seus compoñentes (Botons, Paneles,...)
   4. Define unha clase App con un método main na que unicamente se instancie a clase VentanaPersonalizada
2. Modifica a túa VentanaPersonalizada para que:
   1. empregue mostre o seguinte icono na esquina superior esquerda da pantalla.
   2. Modifica o color do panel con unha cor da túa elección
   3. Engade un borde ao panel con unha cor da túa elección

{% file src="/files/BYlVRj07yzkigMhXBP62" %}

3. Engade na VentanaPersonalizada, un novo panel superior. Dito panel:
   1. Vaise definir como unha clase denominada PanelEtiqueta
   2. O panel etiqueta debe de ter un color de fondo e un borde personalizado.
   3. O PanelEtiqueta debe de conter un elemento tipo JLabel
   4. Esta etiqueta debe de mostrar cada vez que se pulse o botón contador, o valor actual da variable contador
   5. A etiqueta mostra a mensaxe empregando letra tipo Arial, en negrita e de tamaño 16.
   6. A clase PanelEtiqueta e a clase VentanaPersonalizada, deben de poder devolver todos os seus compoñentes.
4. Engade un botón denominado "Nova Venata" que abra unha nova ventana de Diálogo de tipo DialogoPersonalizado ao ser pulsado.
   1. Cando se abra este novo dialogo, debe de escribir por consola unha mensaxe de "Dialogo aberto"
   2. A nova ventana de DialogoPersonalizado debe de conter:
      1. Un obxecto tipo Jlabel no que se indique nome e apelidos, asociado a un obxecto JTextField no que se escriban o nome e os apelidos
      2. Un obxecto tipo Jlabel no que se indique o sexo, asociado a un obxecto RadioButtonGroup, que permite seleccionar os valores de home ou de muller
      3. Crea un JPanel no que inclúas unicamente o RadioButtonGroup cos seus RadioButton correspondentes.
      4. Un obxecto tipo JComboBox no que se deben de almacenar os valores da titulación: "DAW", "DAM" e "ASIR".
      5. Emprega un obxecto tipo GridLayout para conseguir que os compoñentes queden correctamente aliñados
      6. Define un método recuperarDatos() que devolva un String cos datos informados no dialogo
   3. Cando se peche o Dialgo, debe de recuperar os valores dos obxectos que conten e mostrar o seu valor por consola. Debe de chamar a recuperarDatos()


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://educacion.gitbook.io/programacion/exercicios-java/ud5-exercicios/interfaces-graficas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
