Universidade Presbiteriana Mackenzie	
  
Aula	
  3:	
  Hierarquia	
  Window	
  
Prof. Ms. Daniel Arndt Alves
Faculdade	
  de	
  Computação	
  e	
  Informá=ca	
  
Computação e Informática
Faculdade de
Linguagem	
  de	
  
Programação	
  II	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   1	
  
Tópicos	
  da	
  Aula	
  
•  Hierarquia	
  Window	
  dentro	
  do	
  
pacote	
  javax.swing
•  Layouts	
  do	
  Swing	
  
•  Bordas	
  
•  Tratamento	
  de	
  eventos	
  
•  Manipulação	
  de	
  look-­‐and-­‐feel	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   2	
  
Hierarquia	
  Window	
  	
  
Além da classe JPanel, já vista nas aulas
anteriores, o pacote Swing fornece uma série
de alternativas para containers.
Uma destas alternativas inicia-se com a
hierarquia da classe Window, definida no
pacote java.awt.	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   3	
  
Hierarquia	
  Window(II)	
  	
  
Window	
  
	
  (	
  AWT	
  )	
  
Dialog	
  
	
  (AWT)	
  
Frame	
  
(AWT)	
  
JWindow	
  
JDialog	
  
JFrame	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   4	
  
Classe	
  JFrame	
  	
  
A classe JFrame é muito similar à classe Frame
do AWT. Porém, alguns pontos são exclusivos
à classe JFrame:
•  os componentes não são inseridos diretamente
com add
•  a alteração não é feita diretamente só com
setLayout
•  pode-se definir comportamentos-padrão para
evento de fechamento da janela
	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   5	
  
JFrame (Exemplo)	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   6	
  
Código	
  do	
  Exemplo	
  	
  
public class FrameTester {
public static void main (String args[]) {
JFrame f = new JFrame ("JFrame Example");
Container c = f.getContentPane();
c.setLayout (new FlowLayout());
for (int i = 0; i < 5; i++) {
c.add (new JButton ("No"));
c.add (new Button ("Batter"));
}
c.add (new JLabel ("Swing"));
f.setSize (300, 200);
f.show();
}
}	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   7	
  
Evento	
  de	
  fechamento	
  de	
  janela	
  	
  
Além do tradicional tratamento de evento de
fechamento de janela do AWT, o pacote Swing
disponibiliza outras possibilidades de
tratamento através do método
setDefaultCloseOperation(int operação)
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   8	
  
Evento	
  de	
  fechamento	
  de	
  janela	
  	
  
O parâmetro operação pode ser uma das seguintes constantes:
•  DO_NOTHING_ON_CLOSE: comportamento do frame
do AWT
•  HIDE_ON_CLOSE: comportamento padrão. A janela é
apenas escondida.
•  DISPOSE_ON_CLOSE: libera todo o conteúdo da janela.
•  EXIT_ON_CLOSE: força chamada de System.exit()
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   9	
  
Layout	
  em	
  Swing	
  	
  
Além dos tradicionais gerenciadores de layout do
AWT, o pacote javax.swing disponibiliza
4 gerenciadores adicionais:
•  ScrollPaneLayout
•  ViewportLayout
•  BoxLayout
•  OverlayLayout
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   10	
  
ScrollPaneLayout	
  	
  
É o gerenciador de layout utilizado pelo
JScrollPane. Não há necessidade de se
instanciar uma classe com este gerenciador
nem associá-la a um JScrollPane, pois isto
já é feito automaticamente.
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   11	
  
ViewportLayout	
  	
  
É o gerenciador de layout usado pelo
componente JViewport.
Assim como no ScrollPaneLayout, o
gerenciador ViewportLayout já está
automaticamente associado com um objeto
JViewPort.
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   12	
  
BoxLayout	
  	
  
É um gerenciador que permite arranjar os
componentes ao longo dos eixos x ou y.
O construtor do BoxLayout tem a seguinte
forma:
BoxLayout(container, eixo)
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   13	
  
Código	
  do	
  Exemplo	
  	
  
class BoxLayoutTest extends JPanel {
BoxLayoutTest() {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
TextField textField = new TextField();
TextArea textArea = new TextArea(4, 20);
JButton button = new JButton("Tiger", new ImageIcon("SmallTiger.gif"));
add(new JLabel("TextField:"));
add(textField);
add(new JLabel("TextArea:"));
add(textArea);
add(new JLabel("Button:"));
add(button);
}
}	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   14	
  
BoxLayout	
  (Exemplo)	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   15	
  
Bordas	
  	
  
O pacote javax.swing.border consiste de
várias classes para desenhar bordas
envolvendo componentes.
Todas estas classes implementam a interface
Border.
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   16	
  
Interface	
  Border
A interface Border consiste de três métodos:
•  public Insets getBorderInsets(Component c):
define a área útil para desenhar a borda
•  public boolean isBorderOpaque(): define se a
borda é opaca ou transparente
•  public void paintBorder(Component c, Graphics
g, int x, int y, int width, int height): define como
desenhar a borda.
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   17	
  
Implementações	
  pré-­‐definidas	
  de	
  bordas	
  
O p a c o t e j a v a x . s w i n g . b o r d e r
disponibiliza 9 classes que implementam a
interface Border:
	
  AbstractBorder BevelBorder
CompoundBorder EmptyBorder
EtchedBorder LineBorder
MatteBorder SoftBevelBorder
TitleBorder
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   18	
  
Definição	
  de	
  bordas	
  
Caso as bordas anteriores não sejam suficientes
para atender às necessidades, basta
implementar os métodos da interface Border,
mostrados anteriormente.	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   19	
  
Instanciação	
  de	
  bordas	
  
Bordas podem ser criadas invocando-se o
construtor de uma das classes anteriores
(exceto AbstractBorder) ou chamando os
métodos estáticos da classe BorderFactory
(pacote javax.swing).
Para se atribuir uma borda a um componente/
c o n t a i n e r , u t i l i z a - s e o m é t o d o
setBorder(borda).	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   20	
  
Bordas	
  (Exemplo)	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   21	
  
Bordas	
  (Exemplo)	
  
public class BorderPanel extends JPanel {
class MyBorder implements Border {
Color color;
public MyBorder (Color c) {
color = c;
}
public void paintBorder (Component c, Graphics g, int x, int y,
int width, int height) {
Insets insets = getBorderInsets(c);
g.setColor (color);
g.fillRect (x, y, 2, height);
g.fillRect (x, y, width, 2);
g.setColor (color.darker());
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   22	
  
Bordas	
  (Exemplo)	
  
g.fillRect (x+width-insets.right, y, 2, height);
g.fillRect (x, y+height-insets.bottom, width, 2);
}
public boolean isBorderOpaque() {
return false;
}
public Insets getBorderInsets(Component c) {
return new Insets (2, 2, 2, 2);
}
}	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   23	
  
Bordas	
  (Exemplo)	
  
public BorderPanel() {
setLayout (new GridLayout (4, 3, 5, 5));
JButton b = new JButton("Empty");
b.setBorder (new EmptyBorder (1,1,1,1));
add(b);
b = new JButton ("Etched");
b.setBorder (new EtchedBorder ());
add(b);
b = new JButton ("ColorizedEtched");
b.setBorder (new EtchedBorder (Color.red, Color.green));
add(b);	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   24	
  
Bordas	
  (Exemplo)	
  
b = new JButton ("Titled/Line");
b.setBorder(new TitledBorder (
new TitledBorder(
LineBorder.createGrayLineBorder(),"Hello"),
"World",
TitledBorder.RIGHT,
TitledBorder.BOTTOM));
add(b);
b = new JButton ("Bevel Up");
b.setBorder(new BevelBorder(BevelBorder.RAISED));
add(b);	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   25	
  
Bordas	
  (Exemplo)	
  
b = new JButton ("Bevel Down");
b.setBorder(new BevelBorder(BevelBorder.LOWERED));
add(b);
b = new JButton ("Soft Bevel Up");
b.setBorder(new SoftBevelBorder(SoftBevelBorder.RAISED));
add(b);
b = new JButton ("Soft Bevel Down");
b.setBorder(new SoftBevelBorder(SoftBevelBorder.LOWERED));
add(b);
b = new JButton ("Matte");
b.setBorder(new MatteBorder(5, 10, 5, 10, Color.red));
add(b);	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   26	
  
Bordas	
  (Exemplo)	
  
b = new JButton ("Matte Icon");
Icon icon = new ImageIcon ("SmallTiger.gif");
b.setBorder(new MatteBorder(10, 10, 10, 10, icon));
add(b);
b = new JButton ("ColorizedBezel");
b.setBorder(new BevelBorder(BevelBorder.RAISED,
Color.red, Color.pink));
add(b);
b = new JButton ("My/Compound");
b.setBorder(new CompoundBorder(new MyBorder(Color.red),
new CompoundBorder (new MyBorder(Color.green),
new MyBorder(Color.blue))));
add(b);
}
}	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   27	
  
Eventos	
  	
  
Como grande parte dos elementos de interface do
swing é derivada da classe básica
J C o m p o n e n t ( d e r i v a d a d e
java.awt.Container), os métodos de
gerenciamento de evento definidos no AWT
podem ser aplicados neste contexto, embora a
maioria das construções utilize classes e
interfaces (listeners) definidos dentro do
pacote javax.swing
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   28	
  
Eventos	
  	
  
Para tratar convenientemente os eventos dentro
do swing, existe a necessidade de se conhecer:
•  tipos de objetos instanciados nos eventos
•  interfaces do tipo listener para implementação
•  fontes de eventos e interfaces utilizadas por
estas fontes
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   29	
  
Objetos	
  de	
  evento	
  	
  
AncestorEvent CaretEvent
ChangeEvent DocumentEvent
HyperlinkEvent InternalFrameEvent
ListDataEvent ListSelectionEvent
MenuDragMouseEvent MenuEvent
MenuKeyEvent PopupMenuEvent
TableColumnModelEvent TableModelEvent
TreeExpansionEvent TreeModelEvent
TreeSelectionEvent UndoableEditEvent
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   30	
  
Exemplo	
  de	
  objetos	
  de	
  evento	
  	
  
JMenu file = new JMenu ("File");
file.addMenuListener (new MenuListener() {
public void menuSelected (MenuEvent e) {
System.out.println ("Selected");
}
public void menuDeselected (MenuEvent e) {
System.out.println ("Deselected");
}
public void menuCanceled (MenuEvent e) {
System.out.println ("Canceled");
}
});	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   31	
  
Interfaces	
  do	
  apo	
  listener	
  	
  
O pacote swing disponibiliza várias interfaces
para tratamento de eventos.
Estas interfaces estão localizadas no pacote
javax.swing.event.
Grande parte das implementações em Swing
utilizam os métodos destas interfaces para
tratamento dos eventos.
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   32	
  
Métodos	
  das	
  interfaces	
  listener	
  
AncestorListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ancestorAdded	
  (AncestorEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ancestorMoved	
  (AncestorEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ancestorRemoved	
  (AncestorEvent)	
  
CaretListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  caretUpdate	
  (CaretEvent)	
  
CellEditorListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ediangCanceled	
  (ChangeEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ediangStopped	
  (ChangeEvent)	
  
ChangeListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  stateChanged	
  (ChangeEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   33	
  
Métodos	
  das	
  interfaces	
  listener	
  
DocumentListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  changedUpdate	
  (DocumentEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  insertUpdate	
  (DocumentEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  removeUpdate	
  (DocumentEvent)	
  
HyperlinkListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  hyperlinkUpdate	
  (HyperlinkEvent)	
  
InternalFrameListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   	
   	
   	
   	
   	
  internalFrameAcavated	
  (InternalFrameEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   	
   	
   	
   	
   	
  internalFrameClosed	
  	
  	
  	
  (InternalFrameEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   	
   	
   	
   	
   	
  internalFrameClosing	
  (InternalFrameEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   	
   	
   	
   	
   	
  internalFrameDeacavated	
  (InternalFrameEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   	
   	
   	
   	
   	
  internalFrameDeiconified	
  (InternalFrameEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   	
   	
   	
   	
   	
  internalFrameIconified	
  (InternalFrameEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   	
   	
   	
   	
   	
  internalFrameOpened	
  (InternalFrameEvent)	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   34	
  
Métodos	
  das	
  interfaces	
  listener	
  
ListDataListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  contentsChanged	
  (ListDataEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  intervalAdded	
  (ListDataEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  intervalRemoved	
  (ListDataEvent)	
  
ListSelec=onListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  valueChanged	
  (ListSelecaonEvent)	
  
MenuDragMouseListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuDragMouseDragged	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (MenuDragMouseEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuDragMouseEntered	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (MenuDragMouseEvent)	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   35	
  
Métodos	
  das	
  interfaces	
  listener	
  
MenuKeyListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuKeyPressed	
  (MenuKeyEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuKeyReleased(MenuKeyEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuKeyTyped	
  (MenuKeyEvent)	
  
MenuListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuCanceled	
  (MenuEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuDeselected	
  (MenuEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuSelected	
  (MenuEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   36	
  
Métodos	
  das	
  interfaces	
  listener	
  
MouseInputListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mouseClicked	
  (MouseEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mouseDragged	
  (MouseEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mouseEntered	
  (MouseEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mouseExited	
  (MouseEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mouseMoved	
  (MouseEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mousePressed	
  (MouseEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mouseReleased	
  (MouseEvent)	
  
PopupMenuListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  popupmenuCanceled	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (PopupMenuEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuDragMouseExited	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (MenuDragMouseEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  menuDragMouseReleased	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (MenuDragMouseEvent)	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   37	
  
Métodos	
  das	
  interfaces	
  listener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  popupMenuWillBecomeInvisible	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (PopupMenuEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  popupMenuWillBecomeVisible	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (PopupMenuEvent)	
  
TableColumnModelListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  columnAdded	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (TableColumnModelEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  columnMarginChanged	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (ChangeEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  columnMoved	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (TableColumnModelEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   38	
  
Métodos	
  das	
  interfaces	
  listener	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  columnRemoved	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (TableColumnModelEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  columnSelecaonChanged	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (ListSelecaonEvent)	
  
TableModelListener	
  
	
  tableChanged	
  (TableModelEvent)	
  
	
  
TreeExpansionListener	
  
	
  treeCollapsed	
  (TreeExpansionEvent)	
  
	
  	
  	
  	
  	
  treeExpanded	
  (TreeExpansionEvent)	
  
	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   39	
  
Métodos	
  das	
  interfaces	
  listener	
  
	
  	
  TreeModelListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  treeNodesChanged	
  (TreeModelEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  treeNodesInserted	
  (TreeModelEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  treeNodesRemoved	
  (TreeModelEvent)	
  
	
  	
  	
  	
  	
  	
  	
  	
  treeStructureChanged(TreeModelEvent)	
  
	
  
	
  TreeSelec=onListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  valueChanged	
  (TreeSelecaonEvent)	
  
	
  
	
  UndoableEditListener	
  
	
  	
  	
  	
  	
  	
  	
  	
  undoableEditHappened(UndoableEditEvent)	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   40	
  
Fontes	
  de	
  eventos	
  
Cada uma das interfaces anteriores está relacionada
com eventos de uma ou mais classe de
componentes.
Por exemplo, a interface MenuListener está
relacionada com JMenu. Assim, quando a fonte
do evento é um objeto desta classe, os métodos
implementados da interface são acionados.	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   41	
  
Implementação	
  de	
  interface	
  (exemplo)	
  	
  
JMenu file = new JMenu ("File");
file.addMenuListener (new MenuListener() {
public void menuSelected (MenuEvent e) {
System.out.println ("Selected");
}
public void menuDeselected (MenuEvent e) {
System.out.println ("Deselected");
}
public void menuCanceled (MenuEvent e) {
System.out.println ("Canceled");
}
});	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   42	
  
Arquitetura	
  MVC	
  	
  
Além do tratamento básico de eventos anterior, o
pacote Java Swing permite, adicionalmente,
um controle maior sobre os componentes
utilizando a arquitetura Model/View/Controller
(MVC).
Por exemplo, eventos podem ser controlados de
forma complexa através de elementos
chamados chamados adaptadores.
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   43	
  
Look-­‐and-­‐feel	
  	
  
Utilizando a estrutura modular da arquitetura
MVC, componentes Swing podem simular a
aparência de vários sistemas gráficos.
Esta funcionalidade com componentes Swing é
chamada de look-and-feel.
Os pacotes que disponibilizam classes de
manipulação de look-and-feel são identificados
por javax.swing.plaf.*;
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   44	
  
Como	
  alterar	
  a	
  aparência	
  ?	
  	
  
try{
UIManager.setLookAndFeel("javax.swing.plaf.Metal.MetalL
ookandFeel");
}
catch(java.lang.ClassNotFoundException e){...}
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   45	
  
Como	
  pegar	
  o	
  look-­‐and-­‐feel	
  do	
  sistema	
  do	
  
usuário	
  ?	
  	
  
try{
UIManager.setLookAndFeel(
UIManager.getCrossPlataformLookAndFellClassName());
}
catch(java.lang.ClassNotFoundException e){...}
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   46	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   47	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   48	
  
Imagens	
  
•  hip://www.goldb.org/goldblog/cmg_images/
real_programmers_binary.jpg	
  	
  
•  hip://sandersconsulang.com/Portals/58319/
images/checklist.jpg	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   49	
  
Obrigado	
  
	
  
Daniel	
  Arndt	
  Alves	
  
	
  
hip://www.progdan.pro.br/	
  	
  
daniel.alves@mackenzie.br	
  
progdan@progdan.pro.br	
  	
  
Daniel	
  Arndt	
  Alves	
   Java	
  Swing:	
  Hierarquia	
  Window	
   50	
  

Mais conteúdo relacionado

PDF
Aula android 02.pdf
PDF
PPT
Introdução à análise orientada a objetos parte 2
PDF
Java aprendendo linguagem.ppt
PPTX
Java gui
Aula android 02.pdf
Introdução à análise orientada a objetos parte 2
Java aprendendo linguagem.ppt
Java gui

Mais procurados (18)

PDF
Java - Introdução a banco de dados
PDF
Java interface gráfica swing
PDF
Curso java 03 - métodos e parâmetros
PDF
Java orientação a objetos (variaveis de instancia e metodos)
PDF
Java Swing
PDF
PPT
Aplicacoes gráficas em Java
PPTX
Clean Code e Object Calisthenics - Aplicados no PHP
PDF
POO - 24 - Classes Básicas do Java - Datas
KEY
BDD com Rails
PDF
Java 06
PPTX
Programação Orientada por Objectos - Aula 6
PDF
GUI Aplicações Gráficas
PPTX
PDF
Web2py: Desenvolvimento Ágil de Aplicações Web com Python
PDF
Labs Jogos Java
Java - Introdução a banco de dados
Java interface gráfica swing
Curso java 03 - métodos e parâmetros
Java orientação a objetos (variaveis de instancia e metodos)
Java Swing
Aplicacoes gráficas em Java
Clean Code e Object Calisthenics - Aplicados no PHP
POO - 24 - Classes Básicas do Java - Datas
BDD com Rails
Java 06
Programação Orientada por Objectos - Aula 6
GUI Aplicações Gráficas
Web2py: Desenvolvimento Ágil de Aplicações Web com Python
Labs Jogos Java
Anúncio

Destaque (10)

PDF
PDF
Java Platform, Enterprise Edition
PDF
Histórico de Participação do Mackenzie na Maratona de Programação
PDF
Bubble Sort
PDF
Insertion Sort
PPTX
Gerenciadores de Layout
PDF
Análise de Algoritmos
PDF
Polimorfismo
PDF
Selection Sort
Java Platform, Enterprise Edition
Histórico de Participação do Mackenzie na Maratona de Programação
Bubble Sort
Insertion Sort
Gerenciadores de Layout
Análise de Algoritmos
Polimorfismo
Selection Sort
Anúncio

Semelhante a Hiearquia Window (20)

PDF
Introdução ao JavaFX
PDF
Tutorial java swing
PDF
AWT paradigmas de programação em java.pdf
PDF
Programando em python interfaces graficas com tk
PDF
Minicurso groovy grails
PDF
Graphics Capabilities of Java Platform
PDF
Apostila:Curso de java II
PPT
Fazendo Injeção de dependência com Unity 1.2
PPT
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
PDF
Tutorial +login+mvc
PDF
Pew2012
PDF
Interface grafica
PDF
Curso de Node JS Básico
PDF
Java swingcomponentes
PDF
Visualg2_manual.pdf
PPTX
Introducao a Linguagem Kotlin
PDF
Web 2.0 com Ajax: JQuery/PHP (Aula 02)
PPT
Minicurso Java
Introdução ao JavaFX
Tutorial java swing
AWT paradigmas de programação em java.pdf
Programando em python interfaces graficas com tk
Minicurso groovy grails
Graphics Capabilities of Java Platform
Apostila:Curso de java II
Fazendo Injeção de dependência com Unity 1.2
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Tutorial +login+mvc
Pew2012
Interface grafica
Curso de Node JS Básico
Java swingcomponentes
Visualg2_manual.pdf
Introducao a Linguagem Kotlin
Web 2.0 com Ajax: JQuery/PHP (Aula 02)
Minicurso Java

Mais de Daniel Arndt Alves (18)

PDF
Variaveis Superglobais
PDF
Programacao Modular
PDF
Strings, Arrays e Manipulação Datas em PHP
PDF
Introducao ao PHP
PDF
Arquitetura web
PDF
HTML Básico
PDF
Conceitos Básicos de Objetos Distribuidos
PDF
Exercicios - Java Swing Listeners
PDF
Exercicios - Java Swing
PDF
Estrutura de Dados II - Plano de Ensino
PDF
Estrutura de Dados II - Apresentação da Disciplina
PDF
Técnicas de Programação Aplicada III - Apresentação da Disciplina
PDF
Técnicas de Programação Aplicada III - Plano de Ensino
PDF
Linguagem de Programação II - Plano de Ensino
PDF
Linguagem de Programação II - Apresentação da Disciplina
PDF
Novos Recursos do Moodle 2
DOC
Novos Recursos do Moodle 2.0 (Paper)
PPTX
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Variaveis Superglobais
Programacao Modular
Strings, Arrays e Manipulação Datas em PHP
Introducao ao PHP
Arquitetura web
HTML Básico
Conceitos Básicos de Objetos Distribuidos
Exercicios - Java Swing Listeners
Exercicios - Java Swing
Estrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Plano de Ensino
Linguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Apresentação da Disciplina
Novos Recursos do Moodle 2
Novos Recursos do Moodle 2.0 (Paper)
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos

Último (20)

PDF
diário de palestra DDS Online - Apostila.pdf
PPTX
Basic life Support - suporte tecnico de vida
PDF
historia-e-geografia-do-amapa.pdf slides
DOCX
PLANEJAMENTO APOIO 3º B 2025 1º MÉDIO ARTE E TEATRO.docx
PDF
Fronteira escrito por José de Souza Martins
PDF
Sociologia Cultural, Aspecto teóricos e conceitos
PPTX
02-simulado-saeb-9o-ano-matematica1.pptx
PPTX
Adaptação Curricular para Alunos com Deficiências - EMEB. ODIR (1).pptx
PDF
Artigo sobre o discurso do sujeito coletivo
PPTX
A enfermagem voltada aos adultos portadores de sindrome de down
PDF
Mudanças Climáticas. Texto e atividade
PDF
projeto 5 Em movimento Ciencias Humanas.pdf
PPTX
AULA 5 - HIGIENE HOSPITALAR .pptx
PPTX
introdução a informatica e suas peculiaridades
PPTX
SEGURANÇA, MEIO AMBIENTE E SAÚDE Aula 1.pptx
PDF
SLIDES da Palestra Da Educação especial para Educação Inclusiva.pdf
PPTX
DOUTRINA FORÇA TÁTICA PMRO 2022 - PPT (1).pptx
PPTX
entorseestadodechoque. Aula de primeiros socorros
PPT
Os Grandes Períodos Históricos UESC 2009.1
PPTX
5° LP AULAO SHOW - SPAECE - FOCO_20231029_101331_0000.pptx
diário de palestra DDS Online - Apostila.pdf
Basic life Support - suporte tecnico de vida
historia-e-geografia-do-amapa.pdf slides
PLANEJAMENTO APOIO 3º B 2025 1º MÉDIO ARTE E TEATRO.docx
Fronteira escrito por José de Souza Martins
Sociologia Cultural, Aspecto teóricos e conceitos
02-simulado-saeb-9o-ano-matematica1.pptx
Adaptação Curricular para Alunos com Deficiências - EMEB. ODIR (1).pptx
Artigo sobre o discurso do sujeito coletivo
A enfermagem voltada aos adultos portadores de sindrome de down
Mudanças Climáticas. Texto e atividade
projeto 5 Em movimento Ciencias Humanas.pdf
AULA 5 - HIGIENE HOSPITALAR .pptx
introdução a informatica e suas peculiaridades
SEGURANÇA, MEIO AMBIENTE E SAÚDE Aula 1.pptx
SLIDES da Palestra Da Educação especial para Educação Inclusiva.pdf
DOUTRINA FORÇA TÁTICA PMRO 2022 - PPT (1).pptx
entorseestadodechoque. Aula de primeiros socorros
Os Grandes Períodos Históricos UESC 2009.1
5° LP AULAO SHOW - SPAECE - FOCO_20231029_101331_0000.pptx

Hiearquia Window

  • 1. Universidade Presbiteriana Mackenzie   Aula  3:  Hierarquia  Window   Prof. Ms. Daniel Arndt Alves Faculdade  de  Computação  e  Informá=ca   Computação e Informática Faculdade de Linguagem  de   Programação  II   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   1  
  • 2. Tópicos  da  Aula   •  Hierarquia  Window  dentro  do   pacote  javax.swing •  Layouts  do  Swing   •  Bordas   •  Tratamento  de  eventos   •  Manipulação  de  look-­‐and-­‐feel   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   2  
  • 3. Hierarquia  Window     Além da classe JPanel, já vista nas aulas anteriores, o pacote Swing fornece uma série de alternativas para containers. Uma destas alternativas inicia-se com a hierarquia da classe Window, definida no pacote java.awt.   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   3  
  • 4. Hierarquia  Window(II)     Window    (  AWT  )   Dialog    (AWT)   Frame   (AWT)   JWindow   JDialog   JFrame   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   4  
  • 5. Classe  JFrame     A classe JFrame é muito similar à classe Frame do AWT. Porém, alguns pontos são exclusivos à classe JFrame: •  os componentes não são inseridos diretamente com add •  a alteração não é feita diretamente só com setLayout •  pode-se definir comportamentos-padrão para evento de fechamento da janela   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   5  
  • 6. JFrame (Exemplo)     Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   6  
  • 7. Código  do  Exemplo     public class FrameTester { public static void main (String args[]) { JFrame f = new JFrame ("JFrame Example"); Container c = f.getContentPane(); c.setLayout (new FlowLayout()); for (int i = 0; i < 5; i++) { c.add (new JButton ("No")); c.add (new Button ("Batter")); } c.add (new JLabel ("Swing")); f.setSize (300, 200); f.show(); } }   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   7  
  • 8. Evento  de  fechamento  de  janela     Além do tradicional tratamento de evento de fechamento de janela do AWT, o pacote Swing disponibiliza outras possibilidades de tratamento através do método setDefaultCloseOperation(int operação) Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   8  
  • 9. Evento  de  fechamento  de  janela     O parâmetro operação pode ser uma das seguintes constantes: •  DO_NOTHING_ON_CLOSE: comportamento do frame do AWT •  HIDE_ON_CLOSE: comportamento padrão. A janela é apenas escondida. •  DISPOSE_ON_CLOSE: libera todo o conteúdo da janela. •  EXIT_ON_CLOSE: força chamada de System.exit() Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   9  
  • 10. Layout  em  Swing     Além dos tradicionais gerenciadores de layout do AWT, o pacote javax.swing disponibiliza 4 gerenciadores adicionais: •  ScrollPaneLayout •  ViewportLayout •  BoxLayout •  OverlayLayout Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   10  
  • 11. ScrollPaneLayout     É o gerenciador de layout utilizado pelo JScrollPane. Não há necessidade de se instanciar uma classe com este gerenciador nem associá-la a um JScrollPane, pois isto já é feito automaticamente. Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   11  
  • 12. ViewportLayout     É o gerenciador de layout usado pelo componente JViewport. Assim como no ScrollPaneLayout, o gerenciador ViewportLayout já está automaticamente associado com um objeto JViewPort. Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   12  
  • 13. BoxLayout     É um gerenciador que permite arranjar os componentes ao longo dos eixos x ou y. O construtor do BoxLayout tem a seguinte forma: BoxLayout(container, eixo) Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   13  
  • 14. Código  do  Exemplo     class BoxLayoutTest extends JPanel { BoxLayoutTest() { setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); TextField textField = new TextField(); TextArea textArea = new TextArea(4, 20); JButton button = new JButton("Tiger", new ImageIcon("SmallTiger.gif")); add(new JLabel("TextField:")); add(textField); add(new JLabel("TextArea:")); add(textArea); add(new JLabel("Button:")); add(button); } }   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   14  
  • 15. BoxLayout  (Exemplo)     Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   15  
  • 16. Bordas     O pacote javax.swing.border consiste de várias classes para desenhar bordas envolvendo componentes. Todas estas classes implementam a interface Border. Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   16  
  • 17. Interface  Border A interface Border consiste de três métodos: •  public Insets getBorderInsets(Component c): define a área útil para desenhar a borda •  public boolean isBorderOpaque(): define se a borda é opaca ou transparente •  public void paintBorder(Component c, Graphics g, int x, int y, int width, int height): define como desenhar a borda. Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   17  
  • 18. Implementações  pré-­‐definidas  de  bordas   O p a c o t e j a v a x . s w i n g . b o r d e r disponibiliza 9 classes que implementam a interface Border:  AbstractBorder BevelBorder CompoundBorder EmptyBorder EtchedBorder LineBorder MatteBorder SoftBevelBorder TitleBorder Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   18  
  • 19. Definição  de  bordas   Caso as bordas anteriores não sejam suficientes para atender às necessidades, basta implementar os métodos da interface Border, mostrados anteriormente.   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   19  
  • 20. Instanciação  de  bordas   Bordas podem ser criadas invocando-se o construtor de uma das classes anteriores (exceto AbstractBorder) ou chamando os métodos estáticos da classe BorderFactory (pacote javax.swing). Para se atribuir uma borda a um componente/ c o n t a i n e r , u t i l i z a - s e o m é t o d o setBorder(borda).   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   20  
  • 21. Bordas  (Exemplo)     Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   21  
  • 22. Bordas  (Exemplo)   public class BorderPanel extends JPanel { class MyBorder implements Border { Color color; public MyBorder (Color c) { color = c; } public void paintBorder (Component c, Graphics g, int x, int y, int width, int height) { Insets insets = getBorderInsets(c); g.setColor (color); g.fillRect (x, y, 2, height); g.fillRect (x, y, width, 2); g.setColor (color.darker()); Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   22  
  • 23. Bordas  (Exemplo)   g.fillRect (x+width-insets.right, y, 2, height); g.fillRect (x, y+height-insets.bottom, width, 2); } public boolean isBorderOpaque() { return false; } public Insets getBorderInsets(Component c) { return new Insets (2, 2, 2, 2); } }   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   23  
  • 24. Bordas  (Exemplo)   public BorderPanel() { setLayout (new GridLayout (4, 3, 5, 5)); JButton b = new JButton("Empty"); b.setBorder (new EmptyBorder (1,1,1,1)); add(b); b = new JButton ("Etched"); b.setBorder (new EtchedBorder ()); add(b); b = new JButton ("ColorizedEtched"); b.setBorder (new EtchedBorder (Color.red, Color.green)); add(b);   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   24  
  • 25. Bordas  (Exemplo)   b = new JButton ("Titled/Line"); b.setBorder(new TitledBorder ( new TitledBorder( LineBorder.createGrayLineBorder(),"Hello"), "World", TitledBorder.RIGHT, TitledBorder.BOTTOM)); add(b); b = new JButton ("Bevel Up"); b.setBorder(new BevelBorder(BevelBorder.RAISED)); add(b);   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   25  
  • 26. Bordas  (Exemplo)   b = new JButton ("Bevel Down"); b.setBorder(new BevelBorder(BevelBorder.LOWERED)); add(b); b = new JButton ("Soft Bevel Up"); b.setBorder(new SoftBevelBorder(SoftBevelBorder.RAISED)); add(b); b = new JButton ("Soft Bevel Down"); b.setBorder(new SoftBevelBorder(SoftBevelBorder.LOWERED)); add(b); b = new JButton ("Matte"); b.setBorder(new MatteBorder(5, 10, 5, 10, Color.red)); add(b);   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   26  
  • 27. Bordas  (Exemplo)   b = new JButton ("Matte Icon"); Icon icon = new ImageIcon ("SmallTiger.gif"); b.setBorder(new MatteBorder(10, 10, 10, 10, icon)); add(b); b = new JButton ("ColorizedBezel"); b.setBorder(new BevelBorder(BevelBorder.RAISED, Color.red, Color.pink)); add(b); b = new JButton ("My/Compound"); b.setBorder(new CompoundBorder(new MyBorder(Color.red), new CompoundBorder (new MyBorder(Color.green), new MyBorder(Color.blue)))); add(b); } }   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   27  
  • 28. Eventos     Como grande parte dos elementos de interface do swing é derivada da classe básica J C o m p o n e n t ( d e r i v a d a d e java.awt.Container), os métodos de gerenciamento de evento definidos no AWT podem ser aplicados neste contexto, embora a maioria das construções utilize classes e interfaces (listeners) definidos dentro do pacote javax.swing Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   28  
  • 29. Eventos     Para tratar convenientemente os eventos dentro do swing, existe a necessidade de se conhecer: •  tipos de objetos instanciados nos eventos •  interfaces do tipo listener para implementação •  fontes de eventos e interfaces utilizadas por estas fontes Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   29  
  • 30. Objetos  de  evento     AncestorEvent CaretEvent ChangeEvent DocumentEvent HyperlinkEvent InternalFrameEvent ListDataEvent ListSelectionEvent MenuDragMouseEvent MenuEvent MenuKeyEvent PopupMenuEvent TableColumnModelEvent TableModelEvent TreeExpansionEvent TreeModelEvent TreeSelectionEvent UndoableEditEvent Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   30  
  • 31. Exemplo  de  objetos  de  evento     JMenu file = new JMenu ("File"); file.addMenuListener (new MenuListener() { public void menuSelected (MenuEvent e) { System.out.println ("Selected"); } public void menuDeselected (MenuEvent e) { System.out.println ("Deselected"); } public void menuCanceled (MenuEvent e) { System.out.println ("Canceled"); } });   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   31  
  • 32. Interfaces  do  apo  listener     O pacote swing disponibiliza várias interfaces para tratamento de eventos. Estas interfaces estão localizadas no pacote javax.swing.event. Grande parte das implementações em Swing utilizam os métodos destas interfaces para tratamento dos eventos.                                           Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   32  
  • 33. Métodos  das  interfaces  listener   AncestorListener                                                                                                                  ancestorAdded  (AncestorEvent)                                                                                                                  ancestorMoved  (AncestorEvent)                                                                                                                  ancestorRemoved  (AncestorEvent)   CaretListener                                                                                                                  caretUpdate  (CaretEvent)   CellEditorListener                                                                                                                  ediangCanceled  (ChangeEvent)                                                                                                                  ediangStopped  (ChangeEvent)   ChangeListener                                                                                                                  stateChanged  (ChangeEvent)                                                                                         Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   33  
  • 34. Métodos  das  interfaces  listener   DocumentListener                                                                                                                  changedUpdate  (DocumentEvent)                                                                                                                  insertUpdate  (DocumentEvent)                                                                                                                  removeUpdate  (DocumentEvent)   HyperlinkListener                                                                                                                  hyperlinkUpdate  (HyperlinkEvent)   InternalFrameListener                                internalFrameAcavated  (InternalFrameEvent)                                internalFrameClosed        (InternalFrameEvent)                                internalFrameClosing  (InternalFrameEvent)                                internalFrameDeacavated  (InternalFrameEvent)                                internalFrameDeiconified  (InternalFrameEvent)                                internalFrameIconified  (InternalFrameEvent)                                internalFrameOpened  (InternalFrameEvent)   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   34  
  • 35. Métodos  das  interfaces  listener   ListDataListener                                                                                                                  contentsChanged  (ListDataEvent)                                                                                                                  intervalAdded  (ListDataEvent)                                                                                                                  intervalRemoved  (ListDataEvent)   ListSelec=onListener                                                                                                                  valueChanged  (ListSelecaonEvent)   MenuDragMouseListener                                                                                                                  menuDragMouseDragged                                                                                                                  (MenuDragMouseEvent)                                                                                                                  menuDragMouseEntered                                                                                                                  (MenuDragMouseEvent)   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   35  
  • 36. Métodos  das  interfaces  listener   MenuKeyListener                                                                                                                  menuKeyPressed  (MenuKeyEvent)                                                                                                                  menuKeyReleased(MenuKeyEvent)                                                                                                                  menuKeyTyped  (MenuKeyEvent)   MenuListener                                                                                                                  menuCanceled  (MenuEvent)                                                                                                                  menuDeselected  (MenuEvent)                                                                                                                  menuSelected  (MenuEvent)                                                                                                                                                                                                                                                     Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   36  
  • 37. Métodos  das  interfaces  listener   MouseInputListener                                                                                                                  mouseClicked  (MouseEvent)                                                                                                                  mouseDragged  (MouseEvent)                                                                                                                  mouseEntered  (MouseEvent)                                                                                                                  mouseExited  (MouseEvent)                                                                                                                  mouseMoved  (MouseEvent)                                                                                                                  mousePressed  (MouseEvent)                                                                                                                  mouseReleased  (MouseEvent)   PopupMenuListener                                                                                                                  popupmenuCanceled                                                                                                                  (PopupMenuEvent)                                                                                                                  menuDragMouseExited                                                                                                                  (MenuDragMouseEvent)                                                                                                                  menuDragMouseReleased                                                                                                                  (MenuDragMouseEvent)   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   37  
  • 38. Métodos  das  interfaces  listener                                                                                                                  popupMenuWillBecomeInvisible                                                                                                                  (PopupMenuEvent)                                                                                                                  popupMenuWillBecomeVisible                                                                                                                  (PopupMenuEvent)   TableColumnModelListener                                                                                                                  columnAdded                                                                                                                  (TableColumnModelEvent)                                                                                                                  columnMarginChanged                                                                                                                (ChangeEvent)                                                                                                                  columnMoved                                                                                                                  (TableColumnModelEvent)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   38  
  • 39. Métodos  das  interfaces  listener                                                                                                                  columnRemoved                                                                                                                  (TableColumnModelEvent)                                                                                                                  columnSelecaonChanged                                                                                                                  (ListSelecaonEvent)   TableModelListener    tableChanged  (TableModelEvent)     TreeExpansionListener    treeCollapsed  (TreeExpansionEvent)            treeExpanded  (TreeExpansionEvent)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   39  
  • 40. Métodos  das  interfaces  listener      TreeModelListener                  treeNodesChanged  (TreeModelEvent)                  treeNodesInserted  (TreeModelEvent)                  treeNodesRemoved  (TreeModelEvent)                  treeStructureChanged(TreeModelEvent)      TreeSelec=onListener                  valueChanged  (TreeSelecaonEvent)      UndoableEditListener                  undoableEditHappened(UndoableEditEvent)                                                                                                                                                                                                                                                                                                                                                   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   40  
  • 41. Fontes  de  eventos   Cada uma das interfaces anteriores está relacionada com eventos de uma ou mais classe de componentes. Por exemplo, a interface MenuListener está relacionada com JMenu. Assim, quando a fonte do evento é um objeto desta classe, os métodos implementados da interface são acionados.                                                                                                                                                                                                                                                                       Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   41  
  • 42. Implementação  de  interface  (exemplo)     JMenu file = new JMenu ("File"); file.addMenuListener (new MenuListener() { public void menuSelected (MenuEvent e) { System.out.println ("Selected"); } public void menuDeselected (MenuEvent e) { System.out.println ("Deselected"); } public void menuCanceled (MenuEvent e) { System.out.println ("Canceled"); } });   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   42  
  • 43. Arquitetura  MVC     Além do tratamento básico de eventos anterior, o pacote Java Swing permite, adicionalmente, um controle maior sobre os componentes utilizando a arquitetura Model/View/Controller (MVC). Por exemplo, eventos podem ser controlados de forma complexa através de elementos chamados chamados adaptadores. Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   43  
  • 44. Look-­‐and-­‐feel     Utilizando a estrutura modular da arquitetura MVC, componentes Swing podem simular a aparência de vários sistemas gráficos. Esta funcionalidade com componentes Swing é chamada de look-and-feel. Os pacotes que disponibilizam classes de manipulação de look-and-feel são identificados por javax.swing.plaf.*; Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   44  
  • 45. Como  alterar  a  aparência  ?     try{ UIManager.setLookAndFeel("javax.swing.plaf.Metal.MetalL ookandFeel"); } catch(java.lang.ClassNotFoundException e){...} Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   45  
  • 46. Como  pegar  o  look-­‐and-­‐feel  do  sistema  do   usuário  ?     try{ UIManager.setLookAndFeel( UIManager.getCrossPlataformLookAndFellClassName()); } catch(java.lang.ClassNotFoundException e){...} Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   46  
  • 47. Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   47  
  • 48. Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   48  
  • 49. Imagens   •  hip://www.goldb.org/goldblog/cmg_images/ real_programmers_binary.jpg     •  hip://sandersconsulang.com/Portals/58319/ images/checklist.jpg     Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   49  
  • 50. Obrigado     Daniel  Arndt  Alves     hip://www.progdan.pro.br/     [email protected]   [email protected]     Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   50