Este tutorial discute os conceitos básicos da programação GUI (Graphical User Interface) e das Classes Java Foundation ou JFC em Java:
Nos nossos tutoriais anteriores, cobrimos tópicos que vão desde os conceitos básicos de tipos de dados do tipo Java, variáveis, tomada de decisões, e construções de loop, etc. a arrays, colecções, e métodos em Java.
Discutimos também o conceito de multithreading e excepções. Depois disso, aprendemos o suporte de Java OOPS. Usando todos estes conceitos, podemos desenvolver aplicações de alto nível em Java que são reutilizáveis e robustas, bem como auto-contidas.
=> Verifique Aqui Para Ver A-Z de Tutoriais de Formação em Java.
Neste tutorial, vamos começar a nossa discussão sobre o desenvolvimento gráfico de aplicações em Java. Como todos os outros conceitos, Java fornece numerosas classes gráficas reutilizáveis e APIS para que possamos desenvolver a nossa Interface Gráfica de Utilizador (GUI).
O que é uma Interface Gráfica de Utilizador em Java
Interface Gráfica de Utilizador ou simplesmente chamada “GUI” é um termo geral utilizado no mundo do software. Uma GUI representa uma aplicação que tem uma apresentação visual para o utilizador com controlos fáceis de usar. Uma GUI consiste geralmente em componentes gráficos como janelas, molduras, botões, etiquetas, etc.
Podemos utilizar estes componentes para interagir com o sistema ou mesmo com o mundo exterior. Java fornece muitas APIs e classes reutilizáveis utilizando as quais podemos desenvolver aplicações GUI. Um dos kits mais antigos fornecidos por Java é o ‘Abstract Windowing ToolKit’ ou AWT. Todas as APIs ou componentes mais recentes como Swing; JavaFX, etc. são baseados neste AWT.
Programas de consola que temos escrito até agora são igualmente importantes, mas devemos saber que todas as mais recentes aplicações modernas de ambiente de trabalho estão habilitadas graficamente. Isto significa que têm uma GUI pronta a usar que facilita ao utilizador final a utilização da aplicação com o clique de um rato.
Nota que escrever GUI não é tão fácil como desenhar algumas formas ou incluir imagens. A GUI contém uma sequência de actividades que também desencadeia alguns eventos que, por sua vez, executam algumas acções ao invocar um componente ou parte de um componente, como por exemplo, clicando num botão desencadeamos algumas acções.
Então uma aplicação GUI é uma estrutura que consiste em componentes gráficos & eventos que podem ser desencadeados nestes componentes e as acções que executam como resultado de eventos desencadeam.
Frameworks geralmente fornecem classes e componentes reutilizáveis pré-compilados que podemos arrastar e largar na área de desenho e depois associar os eventos e acções com estes componentes.
Java fornece as seguintes frameworks principais.
Java fornece as seguintes frameworks para programação GUI:
- Abstract Windowing Toolkit: Esta é a estrutura mais antiga em Java e foi introduzida pela primeira vez em JDK 1.0. A maioria dos componentes AWT estão agora desactualizados e são substituídos por componentes swing Java.
- Swing API: Este é um conjunto de bibliotecas gráficas desenvolvidas no topo da estrutura AWT e faz parte das Classes Java Foundation (JFC). Swing tem uma arquitectura modular onde podemos utilizar plug-and-play para os componentes.
- JavaFX: A estrutura mais recente está disponível a partir de Java 8.
Existem várias estruturas gráficas de terceiros como o Eclipse Standard Widget Toolkit (SWT) ou o Google Web Toolkit (GWT) utilizado no Android.
Java Foundation Classes (JFC)
Java fornece um conjunto de características e funcionalidades para o desenvolvimento de interfaces gráficas de utilizador ou GUIs. Este conjunto de funcionalidades é conhecido como Java Foundation Classes ou JFC.
Usando JFC podemos adicionar funcionalidades gráficas ricas às aplicações e também torná-las mais interactivas. JFC contém um conjunto de componentes gráficos que podem ser facilmente ligados à nossa aplicação e programados de acordo com os nossos requisitos. Mas a programação destes componentes normalmente leva apenas algumas linhas de código.
JFC contém classes de pacotes java.awt e javax.swing. Além destes, também contém classes relacionadas com Java 3D, Java 2D, Java Accessibility, etc. JFC está em sincronia com o modelo do objecto e componentes Java e, portanto, é fácil de usar.
O diagrama seguinte resume vários componentes em JFC.
Como mostrado acima, JFC contém classes AWT bem como Swing. Discutiremos cada uma delas à medida que avançamos com os tutoriais Java AWT e Java Swing. JFC também fornece vários métodos que podemos utilizar dentro da nossa aplicação.
Alguns dos métodos normalmente utilizados são:
Método | |
---|---|
public void add(Component c) | Adiciona um componente ao componente principal que invoca o método. |
setSize(int width,int height) | Define o tamanho de um componente com uma largura e altura especificadas. |
Define o gestor de layout especificado para este componente. | |
Define a visibilidade do componente de acordo com o valor boolean. Por defeito, a visibilidade é falsa. |
Agora passemos à discussão dos componentes GUI a um nível geral. Depois, nos nossos tutoriais subsequentes, discutiremos os pacotes AWTand Swing e os seus componentes especificamente.
Window Components
Sabemos que o contentor principal de qualquer aplicação GUI é uma Janela que pode conter uma ou mais molduras.
Um GUI geralmente inclui elementos de interface do utilizador ou os elementos que são exibidos como parte do GUI na aplicação.
Estes componentes de janela são os seguintes:
- Elementos Informativos: Os elementos ou componentes que nos fornecem informações como etiquetas, ícones, banners, ou diálogos de mensagens.
- Controlos de entrada: Campos de texto, botões, listas suspensas, caixas de verificação, botões de rádio, etc. são os controlos de entrada que nos permitem ler dados do utilizador.
- Componentes de Navegação: Componentes como o menu, barras laterais, pão ralado, etc. ajudam-nos a navegar através da aplicação.
P>Deixe-nos agora descrever alguns componentes importantes no GUI.
Frame Em Java
Uma moldura é uma janela gráfica visível no ecrã. Uma moldura pode ser vista como um componente, mas como forma uma janela física que podemos ver no ecrã, é tratada de forma diferente dos outros componentes. Uma moldura pode ter outros componentes gráficos como botões, campos de texto, etc. e painéis também.
Frames também têm métodos que não são suportados por outros componentes. “java.awt.Frame” representa uma classe em AWT enquanto JFrame é a classe contida no pacote Java Swing que representa um Frame.
Por isso qualquer aplicação GUI começará por construir um objecto JFrame que forma a janela principal. Uma vez criado o objecto JFrame, podemos definir a sua propriedade visível para true, chamando setVisible (‘true’). Depois podemos arrastar e largar os outros componentes neste frame.
Todos os componentes da GUI, incluindo os frames, têm algumas propriedades comuns, uma vez que fazem parte de uma hierarquia de herança comum mostrada acima. Assim, podemos dizer que existe um caso poderoso de partilha de código no pacote Java Swing.
A figura seguinte mostra uma janela de frame típica no editor GUI.
Como podemos ver pela figura acima, a janela mais exterior no editor de design (marcada com uma seta vermelha mais pequena) é a frame. Dentro desta moldura, temos vários outros componentes ou componentes filhos da moldura.
Isto é evidente no painel do lado esquerdo que mostra uma estrutura em árvore dos componentes. Como marcado por uma seta vermelha maior, JFrame é o componente raiz e depois todos os outros componentes são os seus componentes filhos.
JPanel Em Java
JPanel container é uma parte do pacote Swing em Java. JPanel armazena um grupo de componentes. JPanel organizou os componentes utilizando o layout por ele definido. Vários layouts podem ajudar o JPanel a organizar melhor os componentes.
JPanel é considerado como um bloco de construção básico para a disposição dos componentes numa moldura ou dentro de outros painéis. Uma aplicação GUI tem normalmente a Moldura como janela principal e um ou mais painéis dentro dela para segurar e organizar vários componentes.
A imagem seguinte mostra um exemplo simples de um painel dentro de uma moldura.
Como mostrado acima, um contentor de Painel é incorporado num contentor de janela de Moldura. Podemos ter um ou mais painéis ou mesmo um painel dentro de um painel. Depois podemos aplicar qualquer gestor de layout ao painel que irá organizar os componentes ou elementos no interior do painel. O gestor de layout predefinido para JPanel é “FlowLayout”.
GUI Layouts em Java
Java contentor utiliza um layout automático de componentes no ecrã. Mas o tamanho e as posições dos componentes são tratados pelo “gestor de layout”. O “layout manager” é definido para um contentor no momento da concepção. Pode também ser alterado dinamicamente.
Layouts comuns utilizados no GUI Java são:
#1) BorderLayout
O layout da fronteira divide o componente em 5 áreas, como se mostra abaixo.
Destas, 4 áreas nomeadamente “Norte”, “Sul”, “Este” e “Oeste” não são redimensionáveis. A área “Centro” é redimensionável. Note-se que cada área tem um limite de apenas um componente e os painéis podem ser utilizados para conter múltiplos componentes.
#2) FlowLayout: Este layout é utilizado para manter múltiplos componentes. Os componentes múltiplos são dispostos horizontalmente e embrulham-se se a largura do recipiente estiver esgotada. Além disso, os componentes são apresentados por ordem da esquerda para a direita.
##3) BoxLayout: Usando a disposição da caixa, os componentes são dispostos quer verticalmente quer horizontalmente. Esta disposição da disposição da caixa é independente do tamanho do contentor. Os componentes do contentor são dispostos de modo a encherem o contentor e têm tamanhos idênticos.
Estes foram alguns dos componentes importantes e comuns que temos no desenvolvimento da GUI. Nos nossos tutoriais subsequentes sobre AWT e Swing, entraremos nos detalhes dos outros componentes fornecidos por estes pacotes.
Perguntas Frequentes
Q #1) O que é a programação GUI?
Resposta: Os programas desenvolvidos usando componentes gráficos que interagem com o computador usando o dispositivo apontador e é accionado por eventos, ou seja, executa algumas acções quando certos eventos são accionados, e chama-se programação GUI.
Uma programação GUI usa estruturas GUI onde podemos ligar e usar directamente componentes gráficos.
Q #2) Que GUI usar com Java?
Resposta: Java suporta algumas das melhores estruturas que podemos usar para desenvolver aplicações GUI como se mostra abaixo:
- JavaFX.
- Swing GUI Java.
- AWT: Abstract Windowing Toolkit.
SWT- Standard Widget Toolkit.li>Apache Pivot.li>SwingX.li>JGoodies.li>QtJambi.
Q #3) Quais são as vantagens de uma GUI?
p>p>Resposta: O programa GUI torna as aplicações interactivas, intuitivas, e mais fáceis de usar e aprender. À medida que proporcionam ao utilizador visuais gráficos, as acções têm mais efeito e assim obtemos feedback visual imediato sobre a aplicação.
Q #4) O que é JavaFX API?
Answer: JavaFX é a mais recente biblioteca Java escrita no código Java nativo e contém classes e interfaces. JavaFX pode ser utilizado para conceber aplicações GUI em versões Java posteriores ao Java 8.
Q #5) O Java é bom para GUI?
Resposta: Embora Java tenha mais ferramentas para desenvolver aplicações GUI juntamente com o melhor suporte, não é tão rápido e eficiente como a biblioteca MFC de C++ que tem quase todas as características para desenvolver aplicações GUI avançadas.
Conclusion
Neste tutorial, explorámos a programação GUI em Java. Introduzimos alguns dos conceitos importantes de programação de GUI em Java e também vimos uma visão geral das estruturas GUI suportadas por Java. Discutimos a visão geral da biblioteca JFC.
=> Verifique TODOS os Tutoriais Java Aqui.