Friessen, Jeff. Beginning Java 7, Apress, 2010. pg. 435-477 O'Reilly. http://oreilly.com/openbook/javawt/book/index.html. pg. 1-3 Zukowski, John. The Definitive Guide to Java Swing Third Edition, Apress, 2005. Pg. 1-5 Deitel, H. M. Java Como Programar. 8 Edio, Person, 2010. Pg. 419- 425 Anderson, Julie, Franceschi, Herv. Java 6 - Uma Abordagem Ativa de Aprendizado, 2 Edio, LTC, 2008. pg. 528-533 DEVMEDIA. http://www.devmedia.com.br/introducao-a-interface-gui- no-java/25646 COSTA, Bruno Vieira. https://www.youtube.com/watch?v=t7QaQsD90JY Nedel, Luciana. http://www.inf.pucrs.br/flash/lapro2/lapro2_gui.pdf Coding4Fun. http://blog.coding4fun.com.br/2014/01/interfaces- graficas-swing-em-java-usando-windowbuilder-pro/ Rodrigues, Antnio. Curso de Java Interface Grfica Rocha, Helder. Como construir aplicaes grficas e Applets 2 Contedo
Introduo AWT Swing 3 Introduo
Apesar de simples interfaces de usurio orientadas a caracteres serem convenientes para demonstrar caractersticas do Java ou para interagir com pequenas aplicaes utilitrias, elas so inadequadas para necessidades mais sofisticadas, tais como preencher formulrios ;
Java fornece APIs que permitem que voc crie e enriquea interfaces grficas de usurio mais sofisticadas ; 4 Java Graphical User Interface Introduo
Existe uma infinidade de funcionalidades disponveis nas bibliotecas de classes Java, destinadas a prover a comunicao homem-mquina grfica ;
Para criar janelas grficas no Java preciso utilizar uma das bibliotecas grficas disponveis (AWT, Swing ou SWT) :
AWT foi uma primeira biblioteca grfica criada para Java; Swing uma biblioteca grfica mais utilizada para Java, pois tem todas as caractersticas da AWT mais atualizada; SWT foi criada inicialmente pela IBM e hoje mantida pela Eclipse foundation. O SWT mais rpido do Swing.
5 Java Graphical User Interface Introduo
Os elementos bsicos necessrios para criar um GUI residem em dois pacotes :
java.awt: Abstract Windowing Toolkit (classes bsicas); javax.swing: Swing Components - fornece melhores alternativas aos componentes definidos na classe java.awt. 6 Java Graphical User Interface Contedo
Introduo AWT Swing 7 AWT
For years, programmers have had to go through the hassles of porting software from BSD-based UNIX to System V Release 4 based UNIX, from OpenWindows to Motif, from PC to UNIX to Macintosh (or some combination thereof), and between various other alternatives, too numerous to mention ;
Getting an application to work was only part of the problem; you also had to port it to all the platforms you supported, which often took more time than the development effort itself .
8 Histria do AWT A dificuldade inicial AWT
In the UNIX world, standards like POSIX and X made it easier to move applications between different UNIX platforms ;
But they only solved part of the problem and didnt provide any help with the PC world ;
Portability became even more important as the Internet grew ;
9 Histria do AWT A dificuldade inicial AWT
The goal was clear: wouldnt it be great if you could just move applications between different operating environments without worrying about the software breaking because of a different operating system, windowing environment, or internal data representation ;?
On May 23, 1995, John Gage, then director of the Science Office for Sun, introduced Java to the world ; .
10 Histria do AWT A soluo AWT
With Java, you can create a program on one platform and deliver the compilation output (byte-codes/class files) to every other supported environment without recompiling or worrying about the local windowing environment, word size, or byte order . 11 Histria do AWT A soluo AWT
But, windowing systems still presents the biggest challenges for portability .
When you move an application from Windows to the OSX, you may be able to salvage most of the computational guts, but youll have to rewrite the window interface code completely .
In Java, this part of the portability challenge initially was addressed by a package called AWT, which stands for Abstract Window Toolkit 12 Histria do AWT O problema do sistemas de janelas AWT
In turn, with AWT came native widgets, and with this early native widget set came . . . Trouble .
The original component set that came with the Java platform, AWT, was dependent on too many idiosyncrasies of the underlying platform ;
Instead of providing a mature-looking component set, Java offered the lowest common denominator version ; 13 Histria do AWT Problemas do AWT AWT
If a feature wasnt available on all Java platforms, it wasnt available on any Java platform .
And then you had to deal with all the browser/platform diferences ;
Each Java runtime environment relied on how the component set was connected with the underlying platform-specific native widget set ;
If there were issues with the connection, first, they were specific to the platform (and/or browser) and second, youhad to code around these problems so your programs could be write-once, run anywhere (WORA), the Java mantra of the time. 14 Histria do AWT Problemas do AWT AWT
As Java technologies became more popular, users realized AWT was extremely slow and unreliable, and you couldnt really do much with the provided components .
Very few of them were available, and you couldnt use them in a visual programming environment .
So, new technologies were introduced, such as just-in-time (JIT) compilers to improve performance and, with Borlands help, JavaBeans for a component-based development . 15 Histria do AWT Problemas do AWT AWT
Eventually, Sun Microsystems teamed up with Netscape Communication and other partners to create yet another library called the Java Foundation Classes, or JFC .
Part of JFC is something called the Swing component set . 16 Histria do AWT Problemas do AWT AWT
Interface grfica: componentes, layout, eventos Java 1.0 Interface que roda de forma medocre em todas as plataformas (Abominable Window Toolkit) Modelo de eventos arcaico Java 1.1 Melhora do modelo de eventos: por delegao usando design pattern Observer Java 1.2 JFC/Swing substitui totalmente componentes AWT Mantm e estende a interface de eventos e layout 17 Linha dos tempo AWT
Serve para oferecer infraestrutura mnima de interface grfica (nivela por baixo)
Componentes tm aparncia dependente de plataforma;
Limitado em recursos devido a depender de suporte de cada plataforma para os componentes oferecidos;
Bugs e incompatibilidades entre plataformas 18 Caractersticas bsicas do AWT Contedo
Introduo AWT Swing 19 Swing
Criado em 1997 Extenso da AWT - Abstract Window Toolkit Classes implementadas inteiramente em Java Mesma estrutura que os componentes AWT Componentes que fornecem melhores alternativas para a implementao de interfaces grficas JButton no lugar de Button, JFrame no lugar de Frame, etc. 20 Histria e Caractersticas Swing
As classes Swing so parte de um conjunto mais genrico de capacidades grficas, chamado de Java Foundation Classes, ou JFC. JFC suporta: definio de botes, menus, etc. desenho 2D (java.awt.geom) funcionalidades drag-and-drop (java.awt.dnd) API com acessibilidade a usurios (javax.accessibility)
Swing mais flexvel que java.awt porque implementada toda em Java, enquanto que java.awt implementada em cdigo nativo. 21 Swing e a JFC Swing 22 Hierarquia de Classes Swing 23 Hierarquia de Classes Swing 24 Hierarquia de Classes Swing
Algumas classes da hierarquia so bastante simples, outras so complexas
JFrame, por exemplo: 2 construtores, 236 mtodos 23 mtodos declarados 17 mtodos herdados de Frame 19 mtodos herdados de Window 44 mtodos herdados de Container 124 mtodos herdados de Component 9 mtodos herdados de Object 25 Hierarquia de Classes Swing
No possvel dominar as facilidades da linguagem com a mesma velocidade com que se domina os comandos de uma linguagem procedural
Uso da documentao da API durante a programao rotineiro e essencial 26 Complexidade da Hierarquia Swing
Uma interface grfica em Java baseada em dois elementos: containers: servem para agrupar e exibir outros componentes componentes: botes, labels, scrollbars, etc.
Dessa forma, todo programa que oferea uma interface vai possuir pelo menos um container, que pode ser:
JFrame: janela principal do programa JDialog: janela para dilogos JApplet: janela para Applets 27 Containers e Componentes Swing
Para construirmos uma interface grfica em JAVA,adicionamos componentes (Botes, Menus, Textos, Tabelas,Listas, etc.) sobre a rea da janela.
Por essa razo a rea da janela um container, ou seja, um elemento capaz de armazenar uma lista de componentes. 28 Containers e Componentes Swing
Desde que a classe Container uma sub-classe da classe Component, todo objeto container tambm um Component.
A diferena bsica entre um objeto JFrame e um objeto Window que o JFrame representa a janela principal de uma aplicao.
Antes de criar um objeto Window, preciso criar um objeto JFrame.
29 Containers e Componentes Swing
JFrame: Um objeto desta classe possui uma barra de ttulo e caractersticas para receber menus e outros componentes.
JDialog: Usada para definir janelas de dilogo para entrada de dados. Normalmente usada em resposta a uma opo de menu selecionada. Definida em funo de um objeto JFrame.
JApplet: Classe base para applets Java. possvel desenhar e adicionar menus e outros componentes em um JApplet.
JComponent: As subclasses de JComponent definem um conjunto de componentes standard (menus, botes, checkboxes, etc.) 30 Containers e Componentes Swing
Alguns atributos de componentes: posio (x,y): posio do objeto em relao ao seu container; nome do componente (myWindow.setName(Teste)); tamanho: altura e largura; cor do objeto e cor de fundo; fonte aparncia do cursor; objeto habilitado ou no (isEnabled(), myWindow.setEnabled); objeto visvel ou no (isVisible(), myWindow.setVisible); objeto vlido ou no.
Todos atributos so private. 31 Containers e Componentes