Buscar

java-swing-140508100446-phpapp01

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 60 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 60 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 60 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LPV 
 
gabriel jesus 
COMPONENTES 
SWING 
Java 
Como 
Programar 
8ª Ed ição 
RESUMO 
BASEADO 
NO LIVRO 
 Uma interface gráfica (GUI) apresenta um mecanismo 
amigável ao usuário para interagir com um aplicativo. 
 Uma GUI dá ao aplicativo uma aparência e 
comportamento distintos. 
 Uma boa interface facilita o aprendizado e utilização do 
aplicativo pelo usuário. 
 As GUI são construídas a partir de componentes GUI. 
 Um componente GUI é um objeto que permite ao 
usuário interagir via mouse, teclado, formulário, 
reconhecimento de voz, etc. 
 Muitas IDEs fornecem ferramentas de projeto GUI para 
facilitar a construção da interface. 
Introdução 
 É possível utilizar uma caixa de diálogo para interagir 
com o usuário. 
 A caixa de diálogo é utilizada para receber informações 
do usuário ou exibir informações para o usuário. 
 A classe JOptionPane do pacote javax.swing fornece 
caixas de diálogos pré-construídas tanto para entrada 
como para saída. 
 Esses diálogos são exibidos invocando métodos 
JOptionPane static. 
 Uma caixa de diálogo modal só deve ser usada quando 
for necessário impedir usuários de interagir com um 
restante de um aplicativo até que eles descartem o 
diálogo. 
 Não é necessário a criação de um objeto para utilizar 
os métodos showInputDialog, showMessageDialog e 
parseInt. São métodos invocados a partir da classe. 
 
 
JOptionPane 
 Somente as caixas de diálogo não atendem todos os 
requisitos de uma boa interface. 
 A maioria dos aplicativos exige interfaces mais 
elaboradas e personalizadas. 
 Por isto, há muitos componentes GUI Swing no pacote 
javax. 
 A maioria dos componentes são componentes Java 
puros (são escritos, manipulados e exibidos em Java). 
 Estes componentes fazerm parte das Java Foundatiton 
Classes (JFC) – bibliotecas para desenvolvimentos de 
GUI para múltiplas plataformas. 
Componentes Swing 
 Há dois pacotes básicos que auxiliam na criação de 
componentes: java.awt e javax.swing. 
 Os componentes java.awt são desenhados conforme a 
plataforma de execução. 
 Os componentes java.awt dependem da plataforma 
local para determinar sua funcionalidade, aparência e 
comportamento. São componentes pesados. 
 Os componentes javax.swing assumem a mesma 
aparência em qualquer plataforma. São componentes 
leves. 
 A principal hierarquia de classes utilizadas na 
construção de GUI é descrita abaixo: 
 Object >> Component >> Container >> JComponent 
Componentes Swing 
 Os componentes derivados de JComponent possui 
vários recursos: 
 aparência e comportamento plugáveis (personalização 
conforme plataforma) 
 teclas de atalho (mnemônicos) para acesso direto dos 
componentes pelo teclado. 
 capacidade de tratamento de eventos 
 breve descrição do propósito do componente (dica de 
ferramenta) 
 suporte para acessibilidade (leitores de tela em braile) 
 suporte para localização de interface com o usuário 
(diferentes linguas e culturas) 
Componentes Swing 
 A maioria das janelas podem conter componentes 
Swing e são instâncias da classe JFrame ou uma 
subclasse de JFrame. 
 JFrame é uma subclasse indireta de java.awt.Window e 
descende diretamente de java.awt.Frame. 
 A classe java.awt.Window fornece atributos e 
comportamentos básicos de uma janela. 
 barra de título na parte superior 
 botões para minimizar, maximizar e fechar a janela. 
 Um JLabel (rótulo) fornece um texto que declara a 
finalidade de cada componente dentro de uma janela. 
Pode exibir apenas texto, uma imagem ou uma 
combinação de imagem com texto. 
 
A Janela e seus Componentes 
 O gerenciador de layout FlowLayout organiza os 
componentes da esquerda para a direita. Sempre 
reorganiza os componentes quando as dimensões do 
container (JFrame) são alteradas. 
 O método setLayout é utilizado para definir qual 
gerenciador de layout deve ser utilizado. 
 Todos os componentes devem ser adicionados 
explicitamente dentro do contêiner. 
 Um Icon é um objeto que implementa a interface 
javax.swing.Icon. A classe ImageIcon é um exemplo. 
 A classe ImageIcon suporta vários formatos de imagem 
(GIF, PNG, JPEG). 
A Janela e seus Componentes 
 A interface javax.swing.SwingConstants declara um 
conjunto de constantes que são usadas para muitos 
componentes Swing. 
 Às vezes, as constantes são utilizadas para auxiliar no 
posicionamento dos textos e ícones dentro de um 
JLabel. 
 SwingConstants.LEFT 
 SwingConstants.CENTER 
 SwingConstants.RIGTH 
 SwingConstants.TOP 
 SwingConstants.CENTER 
 SwingConstants.BOTTON 
A Janela e seus Componentes 
 O usuário interage com uma GUI para indicar as 
tarefas que devem ser executadas pelo aplicativo. 
 As GUIs são baseadas em evento. 
 Quando o usuário interage com a GUI gera um evento 
que guia o programa na realização de uma tarefa. 
 Alguns exemplos de evento: 
 clicar em um botão 
 digitar em um campo de texto 
 selecionar um item do menu 
 fechar uma janela 
 mover o mouse 
 
Eventos 
 A classe JText estende a classe JTextComponent que 
fornece muitos recursos comuns aos componentes 
baseados em texto. 
 A classe JPasswordField estende a classe JTextField e 
adiciona métodos de processamento de senhas. 
 Ambos os componentes representam uma área de uma 
única linha onde o usuário pode inserir um texto. 
 Um JPasswordField mostra que caracteres estão sendo 
digitados, mas oculta os caracteres reais. 
 Quando o usuário digita um texto em um dos 
componentes e tecla ENTER um evento ocorre. 
 O texto só pode ser digitado para o componente que 
estiver em foco. 
 Um componente recebe o foco quando o usuário clica no 
componente. Isto é importante para capturar 
corretamente a origem do evento. 
 
JTextField e JPasswordField 
 Uma classe interna normalmente é utilizada para 
implementar processadores de eventos (handlers de 
evento). 
 O objeto de classe interna pode acessar todos os 
membros da classe externa. 
 Um evento de ação é representado pela classe 
java.awt.event.ActionEvent. 
 Um evento de ação deve ser processado por um objeto 
que implemente a interface 
java.awt.event.ActionListener. 
 Como o JPasswordField descende de JTextField, ambos 
suportam os mesmos eventos. 
 Um ouvinte de evento deve implementar a interface 
apropriada de ouvinte de evento. 
 
JTextField e JPasswordField 
 Muitos tipos diferentes de eventos podem ocorrer quando 
o usuário interage com uma GUI. 
 As informações de evento são armazenados em um objeto 
de uma classe que estende java.awt.AWTEvent. 
 Veja a hierarquia de eventos abaixo: 
 AWTEVent 
 ActionEvent 
 AdjustmentEvent 
 ItemEvent 
 TextEvent 
 ComponentEvent 
 ContainerEvent 
 FocusEvent 
 PaintEvent 
 WindowEvent 
 InputEvent 
 KeyEvent 
 MouseEvent 
 MouseWheelEvent 
 
Tipos de Eventos e Interfaces 
 Tipos adicionais de evento específicos dos componentes 
Swing são declarados no pacote javax.swing.event. 
 Para trabalhar com processamento de eventos precisamos 
identificar três elementos. 
 a origem do evento (componente GUI com o qual o usuário 
interage) 
 o objeto do evento (objeto que guarda informações sobre o 
evento que ocorreu) 
 o ouvinte do evento (objeto que é notificado pela origem quando 
um evento ocorre e executa um método em resposta ao evento) 
 O processamento de um evento gerado por um objeto 
(origem) é delegado a um outro objeto (ouvinte). 
 Este modelo é chamado de modelo de delegação de 
evento. 
 Para cada tipo de evento há uma interface listener de 
evento correspondente. 
 
Tipos de Eventos e Interfaces 
 Cada interface listener de eventos especifica um oumais 
métodos de tratamento de evento que devem ser 
declarados na classe que implementa a interface. 
 Cada classe que implementa uma interface deve declarar 
(definir o código) todos os métodos dessa interface. 
 Cada JComponent tem uma variável de instância 
chamada listenerList que referencia um objeto de classe 
javax.swing.event.EventListenerList para registrar os 
seus ouvintes (listeners). 
 Um componente pode ter vários ouvintes registrados para 
processar os seus eventos. 
 Cada tipo de evento é tratado por uma interface listener 
apropriada: 
 ActionEvent é tratado por ActionListener 
 MouseEvent é tratado por MouseListener e MouseMotionListener 
 KeyEvent é tratado por KeyListener 
 
Tipos de Eventos e Interfaces 
 A partir do evento, o componente decide qual o tipo de 
ouvinte deve receber o evento e qual método deve ser 
executado. 
 Em um ActionEvent, o evento é despachado para o método 
actionPerformed de cada ActionListener registrado. 
 Em um MouseEvent, o evento é despachado para cada 
MouseListener ou MouseMotionListener registrado, e o 
método correto será invocado. 
 O componente saberá chamar o método apropriado 
para cada evento que ocorre, mas para isto é 
necessário que o handler (tratador ou ouvinte) de 
evento seja registrado no componente corretamente. 
 
Tipos de Eventos e Interfaces 
 Um botão é usado pelo usuário para disparar uma ação 
específica por meio de um clique. 
 Um aplicativo Java pode usar vários tipos de botões: 
 botões de comando 
 caixas de seleção 
 botões de alternação 
 botões de opção 
 Veja a hierarquia dos botões derivada do pacote 
javax.swing 
 JComponent 
 AbstractButton 
 JButton 
 JToggleButton 
 JCheckBox 
 JRadioButton 
Botões de Acão : JButton 
 O JButton representa um botão de comando e pode 
possuir um texto em sua face (rótulo do botão). 
 Um botão de comando gera um ActionEvent quando é 
clicado pelo usuário. 
 Um JButton pode exibir um Icon. 
 Um JButton pode exibir um Icon rollover (exibido 
quando o usuário posiciona o mouse sobre o botão). 
Botões de Acão : JButton 
 Há três tipos de botões de estado: 
 JToggleButton, 
 JCheckBox 
 JRadioButton. 
 O JRadioButton é utilizado para representar valores 
mutuamente exclusivos. 
 O JCheckBox permite a escolha de múltiplos valores 
inclusivos. 
 
Botões de Estado: JCheckBox 
 Estes botões (JRadioButton) possuem dois estados: 
selecionado e não-selecionado. 
 O ButtonGroup é utilizado para manter um 
relacionamento lógico entre botões de opção. 
 O ButtonGroup não é exibido. Ele serve apenas para 
agrupar os botões. 
 Este tipo de botão é muito útil para permitir a seleção 
de itens mutuamente exclusivos. 
 
Botões de Estado: JRadionButton 
 Uma caixa de combinação (lista drop-down) permite ao 
usuário selecionar um item em uma lista. 
 As caixas de combinação são implementadas com a 
classe JComboBox que estende JComponent. 
 JComboBox gera ItemEvent como JCheckBox e 
JRadioButton. 
 Uma classe interna anônima tem acesso a todos os 
membros da classe externa. 
 A classe interna anônima que implementa uma 
interface, deve implementar cada método da interface. 
 
Caixa de Combinação: JComboBox 
 Uma lista exibe uma séria de itens a partir da qual o 
usuário pode selecionar um ou mais itens. 
 As listas são criadas com a classe JList, que estende 
diretamente a classe JComponent. 
 A classe JList suporta listas de uma única seleção ou 
listas de seleção múltipla. 
 
Listas : JList 
 Há três modos de seleção para uma lista definidos pela 
classe ListSelectionModel. 
 SINGLE_SELECTION (permite selecionar um item) 
 SINGLE_INTERVAL_SELECTION (permite selecionar em um 
intervalo contíguo de itens) 
 MULTIPLE_INTERVAL_SELECTION (pode selecionar um 
intervalo contínuo de itens) 
 Uma lista de seleção múltipla permite ao usuário 
selecionar muitos itens de uma JList. 
 
Listas : JList 
 As interfaces ouvintes de eventos do mouse são: 
 MouseListener 
 MouseMotionListener 
 Os eventos do mouse podem ser capturados por 
qualquer component GUI que deriva de 
java.awt.Component. 
 
Eventos de Mouse 
 O pacote javax.swing.event contém a interface 
MouseInputListener que estende as interfaces 
MouseListener e MouseMotionListener para criar uma 
única interface com todos os métodos. 
 Os métodos são chamados quando o mouse interage 
com um Component, se objetos listeners de evento 
apropriados forem registrados para esse Component. 
 
Eventos de Mouse 
 Veja a lista de métodos de MouseListener: 
 mousePressed(MouseEvent event) : quando um botão do 
mouse é pressionado enquanto o cursor do mouse estiver 
sobre um component. 
 mouseClicked(MouseEvent event) : quando um botão do 
mouse é pressionado e liberado enquanto o cursor do mouse 
pairar sobre um componente. Esse evento é sempre precedido 
por uma chamada para mousePressed. 
Eventos de Mouse 
 Veja a lista de métodos de MouseListener: 
 mouseReleased(MouseEvent event) : quando um botão do 
mouse é liberado depois de ser pressionado. do mouse estiver 
sobre um component. Esse evento é sempre precedido por 
uma chamada para mousePressed e uma ou mais chamadas 
para mouseDragged. 
 mouseEntered(MouseEvent event) : quando o cursor do 
mouse entra nos limites de um componente. 
 mouseExited(MouseEvent event) : quando o curso do mouse 
deixa os limites de um componente. 
 
Eventos de Mouse 
 Veja a lista de métodos de MouseMotionListener: 
 mouseDragged(MouseEvent event) : quando o botão do mouse 
é pressionado enquanto o curso do mouse estiver sobre um 
componente e o mouse é movido enquanto o botão do mouse 
permanecer pressionado. Esse é evento é sempre precedido 
por uma chamada de mousePressed. Todos os eventos de 
arrastar são enviados para o componente em que o usuário 
começoou a arrastar o mouse. 
 mouseMoved(MouseEvent event) : quando o mouse é movido 
(sem pressionamento de botões) quando o curso do mouse 
está sobre um componente. Todos os eventos de movimento 
são enviados para o componente sobre o qual o mouse 
atualmente está posicionado. 
 
Eventos de Mouse 
 Cada método recebe como argumento um objeto 
MouseEvent que contém informações sobre o evento de 
mouse (incluindo as coordenadas x e y da localização 
em que ocorreu o evento). 
 Os métodos e as constantes e classe InputEvent 
permitem-lhe determinar o botão do mouse em que o 
usuário clicou. 
 Há também a interface MouseWheelListener que 
permite que aplicativos respondam à rotação da roda 
de um mouse. Há métodos nesta interface que permite 
obter informações sobre a quantidade de rotação da 
roda. 
 
Eventos de Mouse 
 Muitas interfaces ouvintes (Listener) possuem muitos 
métodos. 
 Não é sempre desejável implementar todos os métodos 
em uma interface ouvinte. 
 Por esta razão, o Java fornece classes adaptadoras que 
implementa um interface e fornece um implementação 
padrão (método vazio) para cada um dos métodos da 
interface. 
Classes Adaptadores: Adapters 
 Segue a lista de algumas classes Adaptadoras com 
suas respectivas interfaces. 
 ComponentAdapter implementa ComponentListener 
 ContainerAdapter implementa ContainerListener 
 FocusAdapter implementa FocusListener 
 KeyAdapter implementa KeyListener 
 MouseAdapter implementa MouseListener 
 WindowAdapter implementa WindowListener 
 
Classes Adaptadores: Adapters 
 Usando o Adapter, posso estender a classe adaptadora 
ao invés de implementar a interface, para tratar os 
eventos gerados pelos componentes da GUI. 
 A classe MouseEvent herda vários métodos de 
InputEvent que podem distinguir os cliques do mouse e 
a combinaçãodos cliques com pressionamento de 
teclas do teclado. 
 
Classes Adaptadores: Adapters 
 Os componentes leves do Swing que estendem 
JComponent contém o método paintComponent que é 
chamado quando um componente leve é exibido. 
 Este método pode ser sobrescrito para alterar a forma 
como o componente deve ser exibido. 
 Um componente pode ser opaco ou transparente. O 
método setOpaque() controla isto. 
 O método da superclasse (JComponent) deve ser 
sempre o primeiro a ser chamado no método 
paintComponent da subclasse. 
 O método repaint() indica que o componente deve ser 
atualizado na tela o mais rápido possível. 
 
Paineis : JPanel 
 Os eventos do teclado são tratados por uma classe que 
implementa KeyListener. 
 Eventos de teclado são gerados quando teclas são 
pressionadas e liberadas. 
 Os métodos keyPressed(), keyReleased() e keyTyped() 
recebem um KeyEvent como argumento e definem o 
código para tratamento do evento. 
 keyPressed() é invocado quando qualquer tecla é pressionada. 
 keyTyped() é invocado quando uma tecla que não é de ação é 
invocada (home, end, setas, etc). 
 keyReleased() é chamado quando a tecla é lançada após um 
dos métodos anteriores. 
 
Eventos do Teclado 
 Os gerenciadores de layout organizam os componentes 
GUI em um contêiner para propósito de apresentação. 
 Os gerenciadores ajudam a organizar os elementos 
definindo de forma automática as dimensões e posição 
de cada componente. 
 Todos os gerenciadores de layout implementam a 
interface java.awt.LayoutManager. 
 O método setLayout() da classe Container aceita um 
objeto que implementa a interface LayoutManager como 
argumento. 
 
Gerenciadores de Layout 
 Há basicamente três maneiras de organizar 
componentes em uma GUI. 
 Posicionamento absoluto: você pode configurar o layout com 
null e utilizar os métodos setSize e setLocation ou setBounds 
para configurar cada componente. É mais trabalhoso. 
 Gerenciadores de layout: posiciona os elementos de forma 
mais simples e rápida, mas perdemos um pouco o controle 
sobre as dimensões e posicionamento dos elementos. 
 Posicionamento visual em uma IDE: algumas IDEs fornecem 
ferramentas para construir layout com arrastar-e-soltar. 
Além disto, é possível programar os eventos usando clique 
duplo sobre os componentes. Neste caso, a IDE gera o código 
Java necessário. A IDE fornece um controle bom sobre 
posição, tamanho e alinhamento dos elementos. 
 
Gerenciadores de Layout 
 Há vários gerenciadores de layout. Neste momento 
focaremos em apenas três deles: 
 FlowLayout : todos os componentes são colocados em 
sequência da esquerda para a direita na ordem em que foram 
adicionados. É o padrão para JPanel. 
 BorderLayout: organiza os componentes em cinco áreas: 
NORTH, SOUTH, EAST, WEST, CENTER. É o padrão para 
JFrame. 
 GridLayout: organiza os componentes em linhas e colunas. 
 
Gerenciadores de Layout 
 É o gerenciador mais simples. Os componentes são 
colocados no contêiner da esquerda para a direita na 
ordem em que foram adicionados. 
Gerenciador FlowLayout 
 Organiza os componentes em cinco regiões do contêiner 
e implementa a interface LayoutManager2. 
 Limita o contêiner a possuir apenas cinco elementos: 
um por região. 
 O componente colocado na região pode ser outro 
container que contenha outros componentes. 
 As regiões se expandem de acordo com as 
características dos componentes inseridos nelas. 
 
Gerenciador BorderLayout 
 A ausência de um componente em um região faz com 
que a outra região se expanda para ocupar a área da 
região vazia. 
 Se nenhuma região for indicada o componente será 
adicionado ao centro. 
 Se mais de um componente for inserido em uma região, 
apenas o último inserido será exibido. 
 
Gerenciador BorderLayout 
 Divide o contêiner em uma grade. 
 A grade possui linha e colunas. 
 Todos os componentes da grade tem a mesma altura e 
largura. 
 Cada componente é inserido em uma célula da grade. 
 
Gerenciador GridLayout 
 Uma GUI complexa exige que cada componente seja 
colocado em um local exato. 
 Estas GUIs, frequentemente, são formadas por 
múltiplos painéis com os componentes de cada painel 
organizados em layout específico. 
 A classe JPanel estende JComponent, e JComponent 
estende JContainer, então todo JPanel é um Conteiner. 
 
Layouts Complexos 
 Por isto, todo JPanel pode possuir outros componentes, 
inclusive outros JPanels com o método add(). 
 O JPanel não tem um painel de conteúdo como um 
JFrame. Neste caso, os componentes são inseridos 
diretamente no JPanel. 
 O painel é redimensionado de acordo com as dimensões 
dos componentes inseridos nele. 
 
Layouts Complexos 
 Um JText fornece uma área para manipular múltiplas 
linhas de texto. É uma subclasse de JComponent. 
 Um JText não possui eventos de ação. A tecla ENTER 
provoca uma quebra de linha dentro do componente. 
 Um evento externo de outro componente deve ser 
utilizado para provocar alguma ação com o conteúdo 
do JText. 
 
Áreas de Texto : JText 
 Um JScrollPane fornece barras de rolagem para 
componentes. 
 Um JScrollPane pode utilizar algumas constantes para 
definir se e quando as barras de rolagem devem 
aparecer. 
 JScrollPane.VERTICAL_SCROLLBAR_ALWAYS 
 JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS 
 JScrollPane.VERTICAL_SCROLLBAR_NEEDED 
 JScrollPane.HORIZONTAL_SCROLLBAR_NEEDED 
 JScrollPane.VERTICAL_SCROLLBAR_NEVER 
 JScrollPane.HORIZONTAL_SCROLLBAR_NEVER 
 
Áreas de Rolagem : JScrollPane 
 Controles deslizantes permitem selecionar a partir de 
um intervalo de valores de números inteiros. 
 Um JSlider horizontal com marcas de medidas e um 
marcador que permitem a um usuário selecionar um 
valor. 
 JSliders podem ser personalizados para exibir marcas 
de medida principais, marcas de medida secundárias e 
rótulos para as marcas de medida. 
 Os JSliders geram ChangeEvents em resposta a 
interações de usuário. 
 Um objeto de uma classe que implementa a interface 
ChangeListener deve declarar o método stateChanged 
pode responder a ChangeEvents. 
 
Controle Deslizante : JSlider 
 Um JFrame é uma janela com uma barra de título e 
uma borda. 
 A classe JFrame é uma subclasse de Frame. Frame é 
uma subclasse de Window. 
 Uma janela gerada pelo JFrame é exibida conforme o 
padrão de janelas do sistema operacional em uso. 
 Por padrão, quando o usuário fecha uma janela 
JFrame, ela se torna oculta, mas é possível controlar 
isto com o método setDefaultCloseOperation(). 
 
Janelas : JFrame 
 A interface WindowConstants que a classe JFrame 
implementa fornece constantes que podem ser 
utilizadas para definir o que deve ser feito com a janela 
quando o usuário fechá-la. 
 DISPOSE_ON_CLOSE (descartada pelo sistema) 
 DO_NOTHING_ON_CLOSE (o programa decidirá o que deve 
ser feito) 
 HIDE_ON_CLOSE (a janela ficará oculta) 
 
Janelas : JFrame 
 A janela só é exibida quando o método setVisible() é 
invocado com o argumento true. 
 O tamanho da janela pode ser configurado com o 
método setSize() e a localização com o setLocation(). 
 Quando a janela é manipulada pelo usuário, alguns 
eventos são gerados (WindowEvent). 
 Os ouvintes de eventos são registrados com o método 
addWindowListener. 
 
Janelas : JFrame 
 A interface WindowListener fornece sete métodos para 
tratamento dos eventos da janela. 
 windowActivated : chamado quando o quando o usuário 
torna uma janela ativa. 
 windowClosed : chamado logo depois de a janela ser fechada. 
 windowClosing: chamado quando o usuário inicia o 
fechamento da janela 
 windowDeactivated: chamado quando o usuário torna outra 
janelaa janela ativa. 
 windowDeiconified: chamado quando o usuário restaura a 
janela que está minimizada. 
 windowIconified: chamado quando o usuário minimiza a 
janela. 
 windowOpened: chamado quando um programa exibe uma 
janela pela primeira vez. 
 
 
Janelas : JFrame 
 Os menus permitem que o usuário realiza ações sem 
poluir desnecessariamente uma GUI com componentes 
extras. 
 Os menus podem ser anexados somente aos objetos das 
classes que fornecem o método setJMenuBar. 
 Duas dessas classes são JFrame e JApplet. 
 As classes utilizadas para declarar menus são: 
JMenuBar, JMenu, JMenuITem, JCheckBoxMenuItem, 
JRadioButtonMenuItem. 
 
Menus : JMenuBar e JMenu 
 A classe JMenuBar possui métodos para gerenciar uma 
barra de menus (conteiner de menus). 
 A classe JMenu possui métodos para gerenciar menus. 
 Os menus contém itens de menu e são adicionados a 
barras de menus ou a outros menus (submenus). 
 Quando um menu é clicado, ele se expande para 
mostrar sua lista dos itens de menu. 
 A classe JMenuITem contém os métodos para gerenciar 
itens de menu. 
 Quando um item de menu é selecionado resulta em um 
evento de ação. 
 
 
Menus : JMenuBar e JMenu 
 A classe JCheckBoxMenuItem contém métodos para 
gerenciar itens de menu que podem ser ativados ou 
desativados. 
 Uma marca de verificação indica que um item deste tipo 
menu foi ativado. 
 A classe JRadioButtonMenuItem contém métodos 
necessários para gerenciar itens de menu que podem 
ser ativados ou desativados. 
 Um círculo aparece para indicar que um item deste tipo de 
menu foi ativado. 
 
Menus : JMenuBar e JMenu 
 Alguns aplicativos fornecem menus pop-up sensíveis ao 
contexto. 
 No Swing, esses menus são criados com a classe 
JPopupMenu. 
 Esses menus fornecem opções que são específicas do 
componente pelo qual o evento de gatilho pop-up foi 
gerado. 
 Normalmente, o evento de acionamento pop-up ocorre 
quando o usuário pressiona e libera o botão direito do 
mouse. 
 
 Menu de Contexto : JPopupMenu 
 Um programa que utiliza componentes AWT do Java 
assume a aparência e o comportamento da plataforma 
em que o programa executa. 
 Às vezes, isto é desejável porque permite que usuários 
do aplicativo em cada plataforma utilizem componentes 
com os quais eles já estão acostumados. 
 Com o Swing podemos personalizar a aparência e o 
comportamento da interface. 
 
Aparência e Comportamento Plugáveis 
 Muitos aplicativos utilizam uma interface de múltiplos 
documentos (Multiple-Document Interface). 
 Estes aplicativos tem uma janela principal (janela-pai) 
e outras janelas (janelas-filhas), para gerenciar vários 
documentos abertos e que estão sendo processados em 
paralelo. 
 Um processador de texto e um programa de correio 
eletrônico são exemplos de aplicativos MDI. 
 As classes JDesktopPane e JInternalFrame são 
utilizadas para construir interfaces MDI. 
 
Interface de Múltiplos Documentos 
 Um JTabbedFrame organiza componentes GUI em 
camadas, das quais somente uma é visível por vez. 
 Os usuários acessam cada camada via uma guia – 
semelhante a pastas em um gabinete de arquivos. 
 Quando o usuário clica na guia a camada é exibida. 
 
Camadas : JTabbedFrame 
 Este gerenciador (BoxLayout) organiza os componentes 
GUI horizontalmente ao longo do eixo x ou 
verticalmente ao longo do eixo y de um contêiner. 
 É semelhante ao GridLayout, mas permite que os 
componentes organizados na grade variem em tamanho 
e sejam adicionados em qualquer ordem. 
 Este componente é muito complexo e muito poderoso. 
 Vale a pena consultar a documentação para aprender 
de forma objetiva a utilização deste gerenciador. 
 O GridBagConstraints especifica como um componente 
é inserido em um GridBagLayout. 
 
Gerenciador BoxLayout 
 
 
gabriel.filho@uneb.com.br 
Dúvidas e Observações 
	Componentes�SWING
	RESUMO�BASEADO NO LIVRO
	Introdução
	JOptionPane
	Componentes Swing
	Componentes Swing
	Componentes Swing
	A Janela e seus Componentes
	A Janela e seus Componentes
	A Janela e seus Componentes
	Eventos
	JTextField e JPasswordField
	JTextField e JPasswordField
	Tipos de Eventos e Interfaces
	Tipos de Eventos e Interfaces
	Tipos de Eventos e Interfaces
	Tipos de Eventos e Interfaces
	Botões de Acão : JButton
	Botões de Acão : JButton
	Botões de Estado: JCheckBox
	Botões de Estado: JRadionButton
	Caixa de Combinação: JComboBox
	Listas : JList
	Listas : JList
	Eventos de Mouse
	Eventos de Mouse
	Eventos de Mouse
	Eventos de Mouse
	Eventos de Mouse
	Eventos de Mouse
	Classes Adaptadores: Adapters
	Classes Adaptadores: Adapters
	Classes Adaptadores: Adapters
	Paineis : JPanel
	Eventos do Teclado
	Gerenciadores de Layout
	Gerenciadores de Layout
	Gerenciadores de Layout
	Gerenciador FlowLayout
	Gerenciador BorderLayout
	Gerenciador BorderLayout
	Gerenciador GridLayout
	Layouts Complexos
	Layouts Complexos
	Áreas de Texto : JText
	Áreas de Rolagem : JScrollPane
	Controle Deslizante : JSlider
	Janelas : JFrame
	Janelas : JFrame
	Janelas : JFrame
	Janelas : JFrame
	Menus : JMenuBar e JMenu
	Menus : JMenuBar e JMenu
	Menus : JMenuBar e JMenu
	 Menu de Contexto : JPopupMenu
	Aparência e Comportamento Plugáveis
	Interface de Múltiplos Documentos
	Camadas : JTabbedFrame
	Gerenciador BoxLayout
	Dúvidas e Observações

Continue navegando