Buscar

Java - Swing Componentes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

1
SwingCriando Interfaces Gráficas com JavaComponentes
Linguagem de Programação - JavaProfessora: Mariana O. Silva, Esp., MeContato: mariana.silva@uniandrade.edu.br
2
Posicionamento de Janelas
3
4
Componentes Básicos
• JFrame - É um container (formulário) para outros componentes GUI. • JLabel - Área em que podem ser exibidos texto não-editável ou ícones. JTextField - Área em que o usuário insere dados pelo teclado. • JButton - Área que aciona um evento quando o usuário clica. 
5
Componentes Básicos
• JCheckBox - Possui dois estados: selecionado ou não-selecionado.
• JComboBox - Lista de itens que o usuário pode fazer uma seleção clicando em um item na lista ou digitando na caixa. 
6
Componentes Básicos
• JList - Área em que uma lista é exibida, possibilitando a seleção clicando em qualquer item da lista.
• JPanel - Container em que os componentes podem ser colocados
7
javax.swing.JFrame - Métodos
• JFrame() e JFrame(String title): Construtores • void setDefaultCloseOperation(intoperation) Altera a operação padrão a ser executada quando o usuário fechar o Jframe• public void setExtendedState(intstate) Altera o estado do JFrame: maximizado, minimizado, ...)
8
javax.swing.JFrame - Métodos
• void pack() Redimensiona a janela para encaixar-se ao tamanho dos seus subcomponentes • void show(): exibe o janela do Jframe• void setIconImage(Image image): altera o ícone do canto superior esquerdo 
9
javax.swing.JFrame - Métodos
• void setResizable(booleanresizable): define se a janela poderá ser redimensionada • void setTitle(String title): altera o título da janela
10
Crie a classe JanelaAvancada
Não esqueça dos imports
11
Crie a classe JanelaAvancada
12
Mas e o que acontece quando é acionado o botão da tela?
Nada!? É necessário relacionar uma ação a este botão.
13
Modelo de Tratamento de Eventos• Eventos são gerados quando o usuário interage com a interface. Os pacotes que implementam eventos são: 
java.awt.event e javax.swing.event• O mecanismo de tratamento de eventos é composto por: • event source: refere-se ao componente origem do evento • event object: encapsula as informações sobre o evento ocorrido • event listener: quem monitora e responde ao evento
14
Modelo de Tratamento de Eventos
15
Exemplos de eventos e seus correspondentes
• Listeners Clicar em um botão, menu ou pressionar Enter --> ActionListener• Fechar um Frame --> WindowListener Pressionar o botão do mouse --> MouseListener * • Mover o mouse sobre um componente --> MouseMotionListener• Componente torna-se visível --> ComponentListener *• Componente recebe o foco --> FocusListener * • Seleção em tabela ou lista --> ListSelectionListener• Pressionar uma tecla --> KeyListener * • Alterar a posição do cursor em um texto --> CaretListener• Mudança do estado da janela --> WindowStateListener
16
Implementação - "Executor de eventos" (Event Handler) 
• Declaração da classe executora do evento  public class MyClass implements ActionListener { ... 
• Código que registra uma instância do executor de eventos  componente.addActionListener(instância_de_MyClass); 
• Código que implementa os métodos da interface  public void actionPerformed(ActionEvent e) { ...//código refente a ação } //actionPerfomed
17
Tratando o botão button
button.addActionListener(new ActionListener() {
@Overridepublic void actionPerformed(ActionEvent e) {JOptionPane.showMessageDialog(null, "Texto Digitado: "+ textField.getText());
}});
18
Tratando o comboBox
comboBox.addActionListener(new ActionListener() {
@Overridepublic void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Índice do ComboBox: "+comboBox.getSelectedIndex()+" "+comboBox.getSelectedItem());
}});
19
Tratando o checkBox
checkBox.addActionListener(new ActionListener() {
@Overridepublic void actionPerformed(ActionEvent e) {boolean isSelecionado = checkBox.isSelected();JOptionPane.showMessageDialog(null, "Status CheckBox: "+ isSelecionado);
}});
20
javax.swing.text.JTextComponent -Métodos
 Superclasse direta dos componentes de edição de texto: JTextField, JTextArea e JEditorPane
21
Mais informações sobre os componentes....
22
JTextArea
package com.edu.br.uniandrade.componentes;
import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;
import javax.swing.*;
public class JTextAreaExemplo {
private JFrame mainFrame;private JLabel headerLabel;private JLabel statusLabel;private JPanel controlPanel;
public JTextAreaExemplo(){prepareGUI();}
public static void main(String[] args){JTextAreaExemplo swingControlDemo = new JTextAreaExemplo(); swingControlDemo.showTextAreaDemo();}
private void prepareGUI(){mainFrame = new JFrame("Exemplo de JTextArea");mainFrame.setSize(400,400);mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent windowEvent){System.exit(0);} }); }
headerLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("",JLabel.CENTER); 
statusLabel.setSize(350,100);
controlPanel = new JPanel();controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);mainFrame.add(controlPanel);mainFrame.add(statusLabel);mainFrame.setVisible(true); }
private void showTextAreaDemo(){headerLabel.setText("Controle em uso: JTextArea"); 
JLabel commentlabel= new JLabel("Texto: ", JLabel.RIGHT);
final JTextArea commentTextArea = new JTextArea("Este é um exemplo de uso de JtextArea",5,20);
JScrollPane scrollPane = new JScrollPane(commentTextArea); 
JButton showButton = new JButton("Mostrar Mensagem");
showButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { statusLabel.setText( commentTextArea.getText()); }}); 
controlPanel.add(commentlabel);controlPanel.add(scrollPane); controlPanel.add(showButton);mainFrame.setVisible(true); }}
23
javax.swing.text.JTextComponent -Métodos
• void copy(): copia para a área de transferência o texto selecionado • void cut(): move para a área de transferência o texto selecionado • void paste(): transfere o conteúdo da área de transferência para o componente 
24
javax.swing.text.JTextComponent -Métodos
• String getSelectedText(): retorna o texto selecionado • int getSelectionStart() e intgetSelectionEnd(): retorna o início e o final da seleção • String getText() e String getText(intoffs, int len): retorna o texto
25
javax.swing.text.JTextComponent -Métodos
• void select(int selectionStart, intselectionEnd) e void selectAll(): seleciona o texto • void setEditable(boolean b): permite editar ou não o conteúdo do componentevoid• void setText(String t): altera o texto
26
Gerenciamento de Layout• Definição: é o processo de determinar o tamanho e o posicionamento dos componentes. • Todo container tem um gerenciador de layout - um objeto responsável pela organização dos componentes GUI em um container para fins de apresentação. • É possível trabalhar sem utilizar um gerenciador de layout, para isso é necessário setá-lo para null.
27
Tipos de Gerenciadores de Layout• FlowLayout: Organiza os componentes sequencialmente na ordem em que forem adicionados. • BorderLayout: Organiza os componentes em cinco áreas: norte, sul, leste, oeste e centro. • GridLayout: Organiza os componentes em linhas e colunas. • BoxLayout: Organiza os componentes da esquerda para a direita ou de cima para baixo. 
28
Tipos de Gerenciadores de Layout• CardLayout: Organiza os componentes em forma de pilha, somente o componente no topo é visível. • GridBagLayout: Organiza os componentes sobre uma grade, permitindo especificar tamanho, ocupação, posição, ...
29
Processo básico para utilizar layouts:• Obter uma referência para o container: getContentPane() • Criar um novo gerenciador de layout Alterar o layout: setLayout() • Adicionar os componentes: add() 
30
Processo básico para utilizar layouts: 
Exemplo:
31
32
Han dsOn !
33
Exercício 1
Escrever uma aplicação Java usando GUI para converter graus Celsius em Fahrenheit.
34
Exercício 2
Crie um programa com uma interface gráfica em Java que permita calcular o peso de uma pessoa em vários planetas. O programa deve receber o peso do usuário na terra, o planeta desejado (de acordo com a tabela abaixo) e exibir na tela o peso do usuário no respectivo planeta.
35
Exercício 2
36
Exercício 3
Implemente a calculadora abaixo
37
Exercício 4
implementar o programa a seguir. O programa deverá ter uma classe com o nome FrmCombo e deverá apresentar todos os componentes da figura abaixo.
38
Exercício 5
Escreva um programa em Java que implemente uma interface gráfica para o jogo pedra, papel, tesoura. Neste jogo, o usuário e o computador escolhem entre pedra, papel ou tesoura. Sabendo que pedra ganha de tesoura, papel ganha de pedra e tesoura ganha de papel, exiba na tela o ganhador: usuário ou computador. Para essa implementação, assuma que o número 0 representa pedra, 1 representa papel e 2 representa tesoura. O seu programa deve permitir que o jogador possa escolher entre pedra, papel e tesoura através de um grupo de RadioButtons. Exemplo:
39
Exercício – Desafio**
40
O brigada!
41

Outros materiais