Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


INTERFACES GRÁFICAS EM JAVA - Biblioteca 1330858.pdf, Esquemas de Programação para Java

INTERFACES GRÁFICAS EM JAVA - Biblioteca_1330858.pdf

Tipologia: Esquemas

2019
Em oferta
30 Pontos
Discount

Oferta por tempo limitado


Compartilhado em 23/10/2019

diegomess
diegomess 🇧🇷

6 documentos

1 / 19

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
INTERFACE GRÁFICA
Interface (diferente de Interface gráfica)
Pode ser visto como a especialização de um serviço que pode ser realizado por uma ou mais classes.
A utilização do mecanismo de interface possibilita a especialização à outra classe.
Definição de Interface - implementação
Utilizar a palavra reservada implements
INTERFACES GRÁFICAS EM JAVA
GUI (Graphic User Interface)
AWT e Swing
Containers e componentes
Layouts
Os elementos básicos necessários para criar um GUI residem em dois pacotes:
java.awt: Abstract Windowing Toolkit (classes básicas);
javax.swing: Swing Components - fornece melhores alternativas aos componentes
definidos na classe java.awt.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
Discount

Em oferta

Pré-visualização parcial do texto

Baixe INTERFACES GRÁFICAS EM JAVA - Biblioteca 1330858.pdf e outras Esquemas em PDF para Programação para Java, somente na Docsity!

INTERFACE GRÁFICA

Interface (diferente de Interface gráfica) Pode ser visto como a especialização de um serviço que pode ser realizado por uma ou mais classes.

A utilização do mecanismo de interface possibilita a especialização à outra classe.

Definição de Interface - implementação Utilizar a palavra reservada implements

INTERFACES GRÁFICAS EM JAVA

  • GUI (Graphic User Interface)
  • AWT e Swing
  • Containers e componentes
  • Layouts

Os elementos básicos necessários para criar um GUI residem em dois pacotes :

– java.awt: Abstract Windowing Toolkit (classes básicas);

– javax.swing: Swing Components - fornece melhores alternativas aos componentes

definidos na classe java.awt.

Root pane (Pasta de raiz)

Em geral, você não cria diretamente um objeto JRootPane. Em vez disso, você obtém um JRootPane (quer você quer ou não!) Quando instanciar JInternalFrame ou um dos recipientes Swing de nível superior, como JApplet, JDialog e JFrame.

layered pane (Painel em camadas)

Um painel em camadas é um recipiente Swing que fornece uma terceira dimensão para componentes de posicionamento: profundidade, também conhecida como ordem Z. Ao adicionar um componente a um painel em camadas, você especifica sua profundidade como um número inteiro. Quanto maior o número, mais perto o componente é para a posição "superior" dentro do recipiente. Se os componentes se sobrepõem, os componentes "mais próximos" são desenhados em cima dos componentes em uma profundidade menor. A relação entre os componentes na mesma profundidade é determinada pelas suas posições dentro da profundidade.

O pacote AWT (Abstract Windows Toolkit) possui os primeiros

componentes gráficos que surgiram no java. Como janelas (Container, Frame,

Panel...), alguns botões (Button, RadioButton, CheckBox...), Rótulos (Label),

campos de texto (TextField), Listas (Choice, List,...) entre outros componentes.

Esses componentes eram muito utilizados quando ainda não existia o pacote

Swing. Eles possuem uma aparência mais "padrão", são mais quadrados e não

possuem muitos efeitos gráficos.

O pacote Swing é uma evolução do pacote AWT. Além de seus próprios

componentes, esse pacote possui quase todos os componentes que já existiam no

pacote AWT, porém com uma interface gráfica mais evoluída e com maiores

efeitos. Os componentes Swing começam com a letra "J", assim um botão que

no AWT se denomina Button, no Swing é JButton. Como dito antes, o pacote

Veja esses screenshots da documentação do Swing mostrando a mesma aplicação rodando com 4 LaF diferentes :

O Swing traz muitos componentes para usarmos como: botões, entradas de texto, tabelas, janelas, abas, scroll, árvores de arquivos, Tratamento de Eventos e muitos outros.

Eis abaixo alguns componentes com suas respectivas descrições:

COMPONENTE DESCRIÇÃO

JLabel Exibe texto não editável ou ícones

JTextField Permite ao usuário inserir dados do teclado. Também pode

ser utilizado para exibir texto editável ou não editável.

JButton

Desencadeia um evento quando o usuário clicar nele com o

mouse.

JCheckBox Especifica uma opção que pode ou não ser selecionada.

LComboBox

Fornece uma lista drop-down de itens a partir da qual o

usuário poder fazer uma seleção clicando em um item ou

possivelmente digitando na caixa.

JList

Fornece uma lista de itens a partir do qual o usuário pode

fazer uma seleção clicando em um item na lista. Múltiplos

elementos podem ser selecionados.

JPanel

Fornece uma área em que os componentes podem ser

colocados e organizados. Também pode ser utilizado como

uma área de desenho para imagens.

JOptionPane

Mostra janelas de mensagens, confirmação e erros, permite

entrada de dados, entre outras.

JFrame Cria uma interface gráfica.

JFileChooser

A classe é a responsável por mostrar uma janela de escolha

de arquivos. É possível indicar o diretório inicial, os tipos de

arquivos a serem mostrados, selecionar um ou vários e

muitas outras opções.

Atualmente, o Java suporta, oficialmente , dois tipos de bibliotecas gráficas : AWT e Swing. A AWT foi a primeira API para interfaces gráficas a surgir no Java e foi, mais tarde, superada pelo Swing (a partir do Java 1.2), que possui diversos benefícios em relação a seu antecessor.

A biblioteca do Swing está no pacote javax.swing (inteira, exceto a parte

de acessibilidade, que está em javax.accessibility).

As bibliotecas gráficas são bastante simples no que diz respeito a conceitos necessários para usá-las. A complexidade no aprendizado de interfaces gráficas em Java reside no tamanho das bibliotecas e no enorme mundo de possibilidades; isso pode assustar, em um primeiro momento.

AWT e Swing são bibliotecas gráficas oficiais inclusas em qualquer JRE (Ambiente de Tempo de Execução Java) ou JDK. Além destas, existem algumas

O terceiro argumento representa a string que será exibida na barra de título do diálogo na parte superior do diálogo.

JOptionPane.showMessageDialog( null, "Soma dos números = " + soma, "Soma de dois números tipo inteiro", JOptionPane.PLAIN_MESSAGE );

  • O quarto argumento JOptionPane.PLAIN_MESSAGE é o tipo de diálogo de mensagem a ser exibido. (não exibe ícone à esquerda).

TIPOS DE DIÁLOGOS DE MENSAGEM

- PLAIN_MESSAGE – Um diálogo que contém uma mensagem, mas nenhum ícone. Exemplo: import javax.swing.JOptionPane; public class Interf { public static void main(String args[]) { JOptionPane.showMessageDialog(null,"Minha mensagem! EDIBERTO MARIANO", "diálogo sem ícone", JOptionPane.PLAIN_MESSAGE); } } SAÍDA

  • ERROR_MESSAGE – Um diálogo que indica um erro para o usuário. Exemplo: import javax.swing.JOptionPane; public class Interf { public static void main(String args[]) { JOptionPane.showMessageDialog(null,"Minha mensagem! EDIBERTO MARIANO", "diálogo de ERRO", JOptionPane.ERROR_MESSAGE); } } SAÍDA
  • INFORMATION_MESSAGE – Um diálogo com uma mensagem informativa para o usuário. Exemplo: import javax.swing.JOptionPane;

public class Interf { public static void main(String args[]) { JOptionPane.showMessageDialog(null,"Minha mensagem! EDIBERTO MARIANO", "Informação para o usuário", JOptionPane.INFORMATION_MESSAGE); } } SAÍDA

  • WARNING_MESSAGE – Um diálogo que adverte o usuário de um problema potencial. Exemplo: import javax.swing.JOptionPane; public class Interf { public static void main(String args[]) { JOptionPane.showMessageDialog(null,"Minha mensagem! EDIBERTO MARIANO", "Adverte ao usuário um problema potencial", JOptionPane.WARNING_MESSAGE); } } SAÍDA
  • QUESTION_MESSAGE – Um diálogo que impõe uma pergunta ao usuário. Normalmente, esse diálogo exige uma resposta, como clicar em um botão Yes ou No.

Exemplo1: import javax.swing. JOptionPane ; public class Interf { public static void main(String args[]) { JOptionPane.showMessageDialog(null,"Minha mensagem! EDIBERTO MARIANO”, "Impõe uma pergunta ao usuário", JOptionPane.QUESTION_MESSAGE); } } SAÍDA

SAÍDA DO PROGRAMA EXECUTADO

Permite que seja informado o salário de dois funcionários, depois exibe-os na tela (em um ambiente gráfico) import javax.swing.*; public class Teste { public static void main(String args[ ] ) { String s1, s2; s1=JOptionPane.showInputDialog ("Informe um Salário:"); s2=JOptionPane.showInputDialog ("Informe outro Salário:"); double n1=Double.parseDouble(s1), n2=Double.parseDouble(s2); JOptionPane.showMessageDialog (null, "Professor: Ediberto Mariano \nPrimeiro Salário = "+s1+"\nSegundo Salário = " +s2); } } SAÍDA DO PROGRAMA EXECUTADO

Exercício: Codifique um programa em Java que:

  • seja informado uma qtde de números tipo inteiro via teclado,
  • calcula e exibe a soma dos números digitados,
  • calcula e exibe a qtde de números digitados.
  • calcula e exibe a media dos números digitados.
  • até que seja digitado um numero = zero.
  • em um ambiente gráfico *OBS. O PROGRAMA SERÁ FINALIZADO QUANDO O NÚMERO INFORMADO FOR IGUAL A ZERO
  • CASO O PRIMEIRO NÚMERO INFORMADO FOR IGUAL A ZERO, SERÁ EXIBIDO NA TELA SOMENTE A MENSAGEM NÃO FOI INFORMADO NENHUM NÚMERO VÁLIDO
  • O NÚMERO ZERO NÃO SERÁ CONSIDERADO NÚMERO VÁLIDO, POR ISSO NÃO SERÁ QUANTIFICADOS JUNTO COM OS VÁLIDOS, OU SEJA, DIFERENTES DE ZERO. import javax.swing.*; public class Interf { public static void main(String args[]) { int soma=0, qtde=0, num, aux=1; double media=0; String s1; s1=JOptionPane.showInputDialog ("Informe um número:"); num=Integer.parseInt(s1); if(num==0) aux=0; while(num != 0)

{ soma+=num; qtde++; s1=JOptionPane.showInputDialog ("Informe um número:"); num=Integer.parseInt(s1); } if(aux == 0) JOptionPane.showMessageDialog(null, "Prof. Ediberto Mariano \nNÃO FOI INFORMADO NENHUM NÚMERO VALIDO"); else { media = soma/qtde; JOptionPane.showMessageDialog(null, "Prof. Ediberto Mariano \nSoma : "+soma+"\nQtde de numeros :"+qtde+"\nMedia :"+media); } } }

Usando Interface gráfica o programa abaixo: permite que seja informado via teclado uma frase, exibe em linhas separadas cada palavra existente na frase calcula e exibe a qtde de palavras que existem na frase digitada import java.util.StringTokenizer; import javax.swing.*; public class Interface { public static void main(String[] args) { int qtde = 0; String s1; s1=JOptionPane.showInputDialog ("Digite uma frase"); String frase = s1; StringTokenizer tokens = new StringTokenizer(frase); while(tokens.hasMoreTokens()) { qtde++; System.out.println(tokens.nextToken()); } JOptionPane.showMessageDialog(null,"Qtde de palavras existentes na frase \n "+frase+"\n"+qtde+" Palavras"); } } SAÍDA DO PROGRAMA ACIMA EXECUTADO

// public static final int DEFAULT_HEIGHT = 300; //ou assim } Ou assim import javax.swing. JFrame ; public class Interface { // Objeto Janela static JFrame janela = new JFrame("Minha Primeira Interface Gráfica - PROF. EDIBERTO MARIANO"); public static void main(String args[]) { janela.setBounds(50, 100, 500, 100); // Seta posicao e tamanho: Coluna 50 (do vídeo), Linha 100 (do vídeo), Largura 500, Altura 100 // janela.setDefaultCloseOperation(WindowConstants,DISPOSE_ON_CLOSE); janela.setVisible(true); // Exibe a janela } } SAÍDA

Containers e componentes

**- Uma interface gráfica em Java é baseada em dois elementos:

  • containers:** servem para agrupar e exibir outros componentes. - componentes: botões, labels, scrollbars, etc.
  • Dessa forma, todo programa que ofereça uma interface vai possuir pelo menos um container, que pode ser:
  • JFrame: janela principal do programa
  • JDialog: janela para diálogos - JApplet: janela para Applets
  • Para construirmos uma interface gráfica em JAVA, adicionamos componentes (Botões, Menus, Textos, Tabelas, Listas, etc.) sobre a área da janela.
  • Por essa razão a área da janela é um container , ou seja, um elemento capaz de armazenar uma lista de componentes.

Exemplos com Container e Componentes.

CRIAÇÃO DE UMA INTERFACE GRÁFICA, TAMANHO 500X130, COM DOIS BOTÕES EM JAVA import javax.swing.*; public class interface { public static void main(String jan[]) { Botao janela=new Botao(); janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //TAMANHO DA JANELA, LARGURA = 400 PIXELS, ALTURA 130 PIXELS janela.setSize(500,130); janela.setLayout(null); janela.setVisible(true); } } class Botao extends JFrame { public Botao() { super ("Estácio de Sá - PROF. EDIBERTO MARIANO"); JDesktopPane pan=new JDesktopPane(); JButton bot1=new JButton("CADASTRO DE CLIENTE"); JButton bot2=new JButton("CADASTRO DE FORNECEDORES"); //TAMANHO DOS BOTÕES bot1.setSize(180,30); bot2.setSize(280,30); //POSIÇÕES DOS BOTÕES bot1.setLocation(150,10); //COLUNA 150 LINHA 10 bot2.setLocation(100,50); //COLUNA 1 0 0 LINHA 50 add(bot1); add(bot2); add(pan); } } RESULTADO DO PROGRAMA EXECUTADO

Outro exemplo - Button (com JFrame )

import javax.swing.; import java.awt.; public class Teste { public static void main(String jan[]) { Botao janela=new Botao(); janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //TAMANHO DA JANELA, LARGURA = 300 PIXELS, ALTURA 130 PIXELS janela.setSize(300,130); janela.setLayout(null); janela.setVisible(true); } } class Botao extends JFrame { public Botao() { super ("Estácio de Sá"); JDesktopPane pan=new JDesktopPane(); JButton bot1=new JButton("UNESA"); JButton bot2=new JButton("POO II"); JButton bot3=new JButton("ALUNO"); JButton bot4=new JButton("PROF"); //TAMANHO DOS BOTÕES bot1.setSize(80,30); bot2.setSize(80,30); bot3.setSize(80,30); bot4.setSize(80,30); //POSIÇÕES DOS BOTÕES bot1.setLocation(10,10); //COLUNA 10 LINHA 10 bot2.setLocation(10,50); //COLUNA 10 LINHA 50 bot3.setLocation(100,10);//COLUNA 100 LINHA 10 bot4.setLocation(100,50);//COLUNA 100 LINHA 50 add(bot1); add(bot2); add(bot3); add(bot4); add(pan); } } SAÍDA DO PROGRAMA EXECUTADO

Outro exemplo de containers Com JButton, JFrame e FlowLayout import javax.swing.; import java.awt.; public class TestaContainers { // Objeto Janela static JFrame janela = new JFrame("Container e Componentes - Prof. EDIBERTO"); public static void main (String args[ ]) { int i; janela.setBounds(50, 100, 400, 150); // Seta posição e tamanho janela.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); FlowLayout flow = new FlowLayout(); // Define o layout do container Container caixa = janela.getContentPane(); // Define o tamanho do container caixa.setLayout(flow); // Seta layout do container for (i=1; i<=8; i++) caixa.add(new JButton("Botão " + i)); // Adiciona um botão janela.setVisible(true); // Exibe a janela } } SAÍDA

JLabel - Apenas com texto import java.awt.FlowLayout; //fornece recursos básicos de janela import javax.swing.JFrame; //fornece recursos básicos de janela import javax.swing.JLabel; // exibe textos e imagens public class Interf02 extends JFrame { private JLabel label1; // JLabel apenas com texto public Interf02() // construtor Interface03 adiciona JLabels a JFrame { super("Exemplo de JLabel"); setLayout(new FlowLayout()); //configura o layout de frame //Construtur JLabel com um argumento de string label1 = new JLabel("PROF. EDIBERTO MARIANO"); add(label1); } public static void main(String args[ ] ) { Interf02 lb = new Interf02(); lb.resize(300,100);//300 de largura e 100 de altura lb.setVisible(true); } } SAÍDA