• Save
Hiearquia Window
Upcoming SlideShare
Loading in...5
×
 

Hiearquia Window

on

  • 866 views

Hierarquia Window, dentro do pacote Javax Swing

Hierarquia Window, dentro do pacote Javax Swing

Statistics

Views

Total Views
866
Views on SlideShare
865
Embed Views
1

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 1

http://www.steampdf.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Hiearquia Window Hiearquia Window Presentation Transcript

  • 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   View slide
  • Hierarquia  Window(II)     Window    (  AWT  )   Dialog    (AWT)   Frame   (AWT)   JWindow   JDialog   JFrame   Daniel  Arndt  Alves   Java  Swing:  Hierarquia  Window   4   View slide
  • 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