Aula 1 - Introdução à Interface gráfica do JAVA.pdf
anapatricio
278 views
32 slides
Mar 28, 2024
Slide 1 of 32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
About This Presentation
Introdução à interface gráfica em Java Classes JFrame e JPanel
Size: 1.36 MB
Language: pt
Added: Mar 28, 2024
Slides: 32 pages
Slide Content
Interface
Gráfica
JAVA
ClasseJFrame
ClasseJPanel
Objetivo Geral
•Conhecer e manipular os conceitos fundamentais da criação de
interfaces gráficas em Java utilizando as classes JFrame, JPanel e os
seus componentes.
Objetivos Específicos
1.Conhecer as bibliotecas e frameworks existentes para criar interfaces gráficas
em Java, nomeadamente as biblioteca AWT e Swing e as várias componentes
que podemos utilizar.
2.Compreender a hierarquia de uma interface gráfica utilizando o JFrame e o
JPanel
3.Conhecer a classe JFrame e JPanel e compreender o papel destas classes na
criação de interfaces gráficas.
4.Criar e personalizar uma janela gráfica usando JFrame e o JPanel.
5.Adicionar e organizar componentes gráficos numa janela.
Recordam-se…
Classe JOptionPane do pacote javax.swing permite criar diferentes tipos de
caixas de diálogo, como mensagens informativas, solicitação de entrada de dados,
escolha de opções, …
import javax.swing.JOptionPane;
public class ModoGrafico {
public static void main(String[] args) {
String nome;
//Mostra uma caixa de diálogo que solicita a entrada de
dados
nome = JOptionPane.showInputDialog(“Insira o seu
nome: “);
String mensagem = “O nome inserido foi “+nome;
//Mostra uma caixa de diálogo com a mensagem
JOptionPane.showMessageDialog(null, mensagem);
}
}
Recordam-se…
JOptionPane
showMessageDialog:
Exibe uma caixa de diálogo com uma mensagem informativa.
JOptionPane.showMessageDialog(null, "Olá, mundo!");
showInputDialog:
Solicita uma entrada do utilizador numa caixa de diálogo.
String nome = JOptionPane.showInputDialog("Digite seu nome:");
showOptionDialog:
Exibe uma caixa de diálogo com opções para escolha.
Object[] options = {"Sim", "Não", "Cancelar"};
int escolha = JOptionPane.showOptionDialog(null, "Deseja continuar?",
"Confirmação", JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[2]);
Importância das Interfaces Gráficas
Aplicações de consola
Aplicações interfaces
gráficas •proporcionam uma experiência mais interativa
e visualmente atraente para o utilizador final.
•são importante em aplicações que exigem uma
grande quantidade de dados de entrada
introduzidos pelo utilizador ou que exibem
informações complexas de forma organizada.
•Simplicidade
•facilidade de implementação
Aplicações
Aplicações Gráficas em JAVA
•AWT (Abstract Window Toolkit): java.awt
•É a biblioteca mais antiga.
•Disponibiliza um conjunto básico de componentes gráficos, como botões, caixas de
texto, etc.
•Swing: javax.swing
•É a biblioteca mais avançada para criar interfaces gráficas em Java.
•Oferece maior flexibilidade e controle sobre a aparência e comportamento dos
componentes.
Todas as classes do pacote javax.swing são
extensão das classes do pacote java.awt.
Para criar aplicações gráficas, temos várias opções de bibliotecas e
frameworks. As principais são:
JavaFX:
•JavaFX é uma plataforma de software para desenvolvimento de aplicações para
browser, desktop e dispositivos móveis.
Aplicações Gráficas em JAVA
Java 2D:
•Java 2D é uma API para gráficos 2D de alto desempenho.
Uma Interface gráfica em Java é baseada em dois elementos:
Interface Gráfica
●Define um componente de interface.
●Botões, labels, scrollbars, …
●Os componentes devem ser dispostos de modo a tornar a interface
gráfica o mais intuitiva possível.
servem para agrupar e exibir componentes
●Define um componente que pode conter outros componentes.
●Define métodos como add() para adicionar componentes em seu interior.
●Disponibiliza vários gestores de layout que se encontram no pacote
java.awt.
1.top-level container: fornece a área base para que
os outros componentes swing possam ser inseridos.
(ex: JFrame, JWindown JApplet e JDialog)
2.intermediate container: fornece suporte de posicionamento e acessórios
para que outros componentes swing possam ser inseridos. (ex: JPanel,
JScrollPanel, ...)
3.atomic components: entidades auto-suficientes que representam
informações para o utilizador. (ex: JTextField, JButton)
Hierarquia de Containers
top-level
container
Intermediate
container
atomic components
Hierarquia das Interfaces Gráficas
Principais caraterísticas da biblioteca Swing
1.Componentes Gráficos:
•botões, caixas de texto, rótulos, listas, tabelas, árvores, painéis, entre outros.
2.Look and Feel:
•aparência consistente em diferentes plataformas.
3.Modelo de Eventos:
•para gerir as interações do utilizador.
4.Layout Managers:
•gestores de layout para organizar os componentes dentro de um container.
5. Personalização:
•a aparência e o comportamento dos componentes gráficos de várias maneiras.
Biblioteca Swing
Necessidade das Classes JFrame e JPanel
As classes JFrame e JPanel são fundamentais para a criação de interfaces
gráficas em Java.
•.
O JFrame é responsável por
criar e gerir uma janela gráfica,
fornecendo funcionalidades como
controle de tamanho, posição e
fecho da janela. Serve como o
container principal para os
componentes da interface gráfica.
o JPanel é utilizado para
organizar e agrupar componentes
gráficos dentro de uma janela.
Funciona como um container para
outros componentes, permitindo a
criação de layouts complexos e a
organização eficiente dos
elementos da interface-
JFrame – contentor que consiste numa janela à qual se podem adicionar outros
componentes. É uma janela com uma barra de título, uma borda e botões de.
Construtor Descrição
JFrame() Constrói uma janela sem título.
JFrame(String titulo)
Constrói uma janela com o título indicado
no parâmetro.
Principais Funções da Classe JFrame
1.Criação de Janelas: através da instância de um objeto JFrameouextendendo a
classe a JFrame
2.Controle de Tamanho e Posição: especificar o tamanho e a posição inicial da
janela utilizando métodos como setSize(), setBounds()e setLocationRelativeTo().
3.Manipulação de Eventos: Disponibiliza métodos para trabalhar com eventos de
janela, como fecho, redimensionamento e foco.
4.Adição de Componentes: adicionar diferentes componentes gráficos, como
botões, caixas de texto e rótulos, à janela JFrame utilizando métodos como
add().
5.Exibição da Janela: Por fim, a janela JFrame é exibida na tela utilizando o
método setVisible(true), tornando-a visível para o utilizador.
Métodos e atributos da classe JFrame
Métodos:
1.setTitle(String title): Define o título da janela.
2.setSize(int width, int height): Define o tamanho da janela em
pixels, especificando largura e altura.
3.setDefaultCloseOperation(int operation): Define a operação
padrão ao fechar a janela. Os valores possíveis para "operation"
incluem
JFrame.EXIT_ON_CLOSE, JFrame.DISPOSE_ON_CLOSE,
JFrame.DO_NOTHING_ON_CLOSE, entre outros.
JPanel – contentor que consiste numa janela à qual se podem adicionar outros
componentes contentor que consiste num painel ao qual se podem adicionar
outros componentes. Este por sua vez é adicionado a uma janela (JFrame). tes. É
uma janela com uma barra de título e uma borda.
Construtor Descrição
JPanel() Constrói um painel.
JPanel (LayoutManager layout)
Constrói um painel associado a um
determinado gestor de layout.
1.Organização de Componentes: permite organizar componentes em
layouts complexos de forma eficiente.
2.Personalização Visual: permite personalizar a aparência visual de um
JPanel, definindo cores de fundo, bordas e outros atributos visuais.
3.Divisão de Interfaces: O uso de múltiplos JPanels pode facilitar a divisão
lógica de uma interface gráfica em diferentes áreas ou seções, tornando o
código mais organizado e fácil de manter.
Principais Funções da Classe JPanel
Exercício Prático
Implemente uma aplicação em Java simples que utiliza JFrame
para exibir uma janela básica.
Passo 1: Configuração do Projeto
•Crie um novo projeto Java com o nome aula1_IG.
Passo 2: Criação da Classe Principal
•Crie uma nova classe Java e dê-lhe a ela um nome
significativo, como por exemplo "MinhaJanela".
Exercício Prático (cont.)
Passo 3: Implementação da Janela Gráfica
•Crie uma nova instancia com o nome janela da classe
JFrame;
•Defina o tamanho da janela utilizando o método setSize().
•Especifique a operação padrão ao fechar a janela utilizando
o método setDefaultCloseOperation().
•Torne a janela visível utilizando o método setVisible().
MJanela.setSize(300,200); // tamanho da janela (largura, altura)
import javax.swing.JFrame;
public class MinhaJanela {
public MinhaJanela(){
JFrameMJanela= newJFrame();
MJanela.setTitle("A minha janela"); // título da janela
MJanela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MJanela.setVisible(true); // Torna a janela visível
}
public static void main(String[] args){
newMinhaJanela();
}
}
Ou
setSize(300,200); // tamanho da janela (largura, altura)
import javax.swing.JFrame;
public class MinhaJanela1 extendsJFrame {
public MinhaJanela1(){
setTitle("A minha janela"); // título da janela
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true); // Torna a janela visível
}
public static void main(String[] args){
newMinhaJanela();
}
}
Exercício Prático (cont.)
Passo 4: Implementação do painel
•Crie uma nova instancia com o nome painel da classe
Jpanel (JPanel painel= new JPanel();
•Crie dois botões YES e NO. JButton botao1= new JButton("Yes");
JButton botao2= new JButton("No"); )
•Adicione os dois botões ao painel. painel.add(botao1);
painel.add(botao2);
•Torne o painel visível utilizando o método setVisible().
•Adicione o painel à janela getContentPane().add(painel) ;
•Torne a janela visível utilizando o método setVisible().
import javax.swing.*;
public class MinhaJanela1Painel extends JFrame{
public MinhaJanela1Painel(){
setTitle("A Minha Janela"); // título da janela
setSize(300, 200); // tamanho da janela (largura, altura)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // operação ao fechar a janela
setLocationRelativeTo(null); // a posição da janela como centralizada na tela
JPanel painel= new JPanel(); // criar um JPanel
JButton botao1= new JButton("Yes"); // criar um botão
JButton botao2= new JButton("No"); // criar um botão
painel.add(botao1); // adicionar botão ao painel
painel.add(botao2); // adicionar botão ao painel
painel.setVisible(true); // Torna o painel visível
getContentPane().add(painel) ; // adicionar painel à janela
setVisible(true); // Torna a janela visível
}
public static void main(String[] args){
new MinhaJanela1Painel();
}
}
Componentes – JLabel
JLabel – componente que consta de um rótulo de texto.
Pode ser adicionado a um contentor (JFrame ou JPanel).
Construtor Descrição
JLabel() Constrói um rótulo sem texto.
JLabel(String texto)
Constrói um rótulo com o texto indicado no
parâmetro.
JLabel (Icon icone)
Constrói um rótulo com a imagem indicada no
parâmetro.
JLabel(String texto, int alinhaHoriz)
Constrói um rótulo com o texto e o alinhamento* do
mesmo, indicados nos parâmetros.
JLabel(Icon icone, int alinhaHoriz)
Constrói um rótulo com a imagem e o alinhamento
da mesma, indicados nos parâmetros.
JLabel(String texto, Icon icone, int alinhaHoriz)
Constrói um rótulo com o texto, a imagem e o
alinhamento dos mesmos, indicados nos parâmetros.
Componentes – JTextField (1)
JTextField – componente que consta de um campo de texto editável com uma
única linha. Habitualmente utiliza-se em conjunto com um rótulo (JLabel). Pode ser
adicionado a um contentor (JFrame ou JPanel).
Construtor Descrição
JTextField() Constrói um campo de texto.
JTextField(int colunas)
Constrói um campo de texto com o número de colunas
indicado no parâmetro.
JTextField(String texto)
Constrói um campo de texto que contém, como valor por
predefinição, o texto indicado no parâmetro.
JTextField(String texto, int colunas)
Constrói um campo de texto que contém, como valor por
predefinição, o texto indicado no parâmetro. A largura do
campo é definida pelo número de colunas também indicadas
no parâmetro.
Componentes – JTextField (2)
JTextArea – componente que consta de um campo de texto editável com diversas
linhas. Habitualmente utiliza-se em conjunto com um JScrollPane para que as barras de
rolamento direita e inferior apareçam quando necessário. Pode ser adicionado a um
contentor (JFrame ou JPanel).
Componentes – JTextArea (1)
Construtor Descrição
JTextArea() Constrói uma área de texto com dimensão 0.
JTextArea(String texto)
Constrói uma área de texto que contém, como valor por
predefinição, o texto indicado no parâmetro.
JTextArea(int linhas, int colunas)
Constrói uma área de texto com o número de linhas e de colunas
indicados nos parâmetros.
JTextArea(String texto, int linhas, int
colunas)
Constrói uma área de texto que contém, como valor por
predefinição, o texto indicado no parâmetro. As dimensões da
área são definidas pelo número de linhas e de colunas também
indicadas no parâmetro.
Componentes – JTextArea (2)
Componentes – JButton
JButton – componente que consiste num botão em forma
rectangular. Pode ser adicionado a um contentor (JFrame ou
JPanel).
Construtor Descrição
JButton() Constrói um botão sem texto e sem imagem.
JButton(String texto)
Constrói um botão com o texto indicado no
parâmetro.
JButton(String texto, Icon
icone)
Constrói um botão com o texto e a imagem
indicados no parâmetro.
JButton(Icon icone)
Constrói um botão com a imagem indicada no
parâmetro.
Exercício Prático (cont.)
•Alterar o título
•Alterar o tamanho
•Alterar a posição (centro)
•o ícone da janela,
•Definir o layout da janela
•Adicionar um rótulo à janela
•Adicionar um botão à janela
•Alterar a cor
•Definir o tamanho com base nos
tamanhos dos subcomponentes.
• set.Title();
•set.Size();
•setLocationRelativeTo(null);
•setIconImage(new ImageIcon(“C:\\...\\icon.jpg”).getImage());
•setLayout(new FlowLayout());
•JLabel label = new JLabel("Olá, mundo!");
add(label);
•JButtonbutton= new JButton("Clique aqui");add(button);
•setBackground(color.cyan);
•pack();
Passo 6: Experimentação
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.ImageIcon;
public class MinhaJanela2 extends JFrame{
public MinhaJanela2(){
super("A Minha Janela"); // título da janela
setSize(500, 300); // tamanho da janela (largura, altura)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // operação ao fechar a janela
setLocationRelativeTo(null); // a posição da janela como centralizada na tela
setIconImage(new ImageIcon("D:\\ANA\\ESCOLAS\\2023-2024 AEF\\2023-2024 AEF\\11ºPSI -
GPI22\\M11 – Programação Orientada a Objetos Avançada
(50)\\Projetos\\aula1_IG\\icon1.jpg").getImage());
JLabel rotulo= new JLabel("Isto é um rótulo");
add(rotulo);
JButton botao = new JButton("Clique aqui!");
add(botao);
setVisible(true); // Torna a janela visível
}
public static void main(String[] args){
new MinhaJanela2();}
}
}