A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

POO - II Prof.: Jean Carlo Mendes

Apresentações semelhantes


Apresentação em tema: "POO - II Prof.: Jean Carlo Mendes"— Transcrição da apresentação:

1 POO - II Prof.: Jean Carlo Mendes jean.mendes@gmail.com

2 Interface Gráfica Elementos básicos para se criar uma GUI estão em dois pacotes Java.awt: Abstract Window Toolkit (classes básicas) Javax.swing: Swing componentes – fornece alternativas para os componentes da awt e possuem correspondentes (ex. Button e Jbutton). Swing é implementada toda em Java

3 Interface Gráfica Swing é parte de um conjunto mais genérico chamado JFC (Java Foundation Class) JFC  Coleção de pacotes para criação de aplicações completas para desktop Interface gráfica (GUI) Funcionalidades e interatividade

4 JFC - Características Componentes GUI Swing
Suporte a “Look and Feel” LaF API para acessibilidade API Java 2D Suporte a Drag and Drop Internacionalização

5 Um pouco da história Quando o java 1.0 foi lançado continha apenas a AWT Lida com elementos de interface delegando a criação e o comportamento desses elementos ao conjunto de ferramentas GUI nativo da plataforma Problema: Difícil de escrever uma biblioteca gráfica portátil de qualidade!

6 Um pouco da história Em 1996 a Netscape criou uma biblioteca de GUI chamada IFC (Internet Foundation Classes) Elementos da interface com o usuário eram pintados em janelas em branco Comportamento idênticos A Sun trabalhou com a Netscape para aperfeiçoar essa abordagem, criando uma biblioteca chamada “Swing”

7 Swing javax.swing.* Biblioteca oficial da Java GUI
Todo programa que usa Swing deve ter pelo menos um componente do tipo container. Principais Características: Independente de plataforma Personalizável Extensível Configurável Leve

8

9 Containers e componentes
Uma interface gráfica em Java é baseada em dois elementos: containers: servem para agrupar e exibir outros componentes componentes: botões, labels, scrollbars, etc. Dessa forma, todo programa que ofereça uma interface vai possuir pelo menos um container, que pode ser: – JFrame: janela principal do programa – JDialog: janela para diálogos – JApplet: janela para Applets

10 Container Descendentes da classe java.awt.Container
Componentes que podem conter outros componentes Oferece suporte para desenho e tratamento de eventos

11 Containers e componentes
• Para construirmos uma interface gráfica em JAVA, adicionamos componentes (Botões, Menus, Textos, Tabelas, Listas, etc.) sobre a área da janela. • Por essa razão a área da janela é um container, ou seja, um elemento capaz de armazenar uma lista de componentes.

12 Containers top level Provê o suporte que os componentes swing necessitam para realizar o desenho da tela e o tratamento de eventos. – JFrame: Objeto que implementa janela principal – JDialog: Objeto que implementa janela secundária – JApplet: Objeto que implementa uma área de visualização de applets em browsers;

13 Containers - Exemplo

14 Testar... Redimensione interativamente a janela da aplicação e observe o comportamento dos botões da interface. Troque o argumento de FlowLayout(), para FlowLayout (FlowLayout.LEFT) e observe. Adicione no programa acima, os seguintes componentes: JLabel label = new JLabel("Exemplo de texto:"); caixa.add(label); JTextField campo = new JTextField(15); caixa.add(campo); janela.pack(); // Redimensiona a janela

15 Criando uma janela Uma janela em Java é representada por um objeto da classe Window.

16 Criando uma janela

17 JFrame Um frame é uma janela que, por default, tem decorações tais como: – Uma borda – Um título – Botões para minimizar e fechar a janela Aplicações com uma GUI usam, tipicamente, pelo menos um frame.

18 JFrame

19 JFrame

20 Component e container Desde que a classe Container é uma sub-classe da classe Component, todo objeto container é também um Componente. A diferença básica entre um objeto JFrame e um objeto Window é que o JFrame representa a janela principal de uma aplicação. Antes de criar um objeto Window, é preciso criar um objeto JFrame. Como a classe JDialog deriva diretamente da classe Window, pode-se criar objetos JDialog somente no contexto de um objeto JFrame.

21 Component e container JFrame: Um objeto desta classe possui uma barra de título e características para receber menus e outros componentes. JDialog: Usada para definir janelas de diálogo para entrada de dados. Normalmente usada em resposta a uma opção de menu selecionada. Definida em função de um objeto JFrame. JApplet: Classe base para applets Java. É possível desenhar e adicionar menus e outros componentes em um JApplet. JComponent: As subclasses de JComponent definem um conjunto de componentes standard (menus, botões, checkboxes, etc.)

22 Component e container Outros componentes: Button (JButton)
Menu (JMenu) Text Component (JTextComponent) List (JList) Table (JTable)

23 Testar...

24 Testar...

25 E agora?? Como “organizar” os componentes no Jpanel?
Java oferente diversos “layouts” para a estruturação dos componentes Para o JPanel temos, por exemplo, o FlowLayout que distribui os componentes na horizontal

26 Layouts Já foi visto que interfaces em JAVA são construídas na medida em que adicionamos Components a Containers. Os Containers são responsáveis então por manter os componentes visíveis, repassar os eventos, etc.

27 Layouts Como a filosofia da linguagem JAVA é de que os programas sejam extremamente portáveis, a filosofia da interface visa também ser extremamente adaptável. Por essa razão a disposição dos Components sobre o Container não é indicada por um par ordenado (x,y) como na maioria das bibliotecas de construção de interface com o usuário (MFC - Microsoft, OWL - Borland etc).

28 Layouts É possível definir seus próprios Layouts, mas a linguagem oferece um conjunto de Layouts básicos que simplificam o trabalho. O arranjo dos componentes no container é gerenciado por um LayoutManager

29 Layouts A vantagem da existência de um LayoutManager é que a apresentação dos componentes se adapta quando do redimensionamento da janela A desvantagem é o pouco domínio que o programador tem da posição dos componentes com alguns LayoutManagers

30 Flow Layout Componentes distribuídos sequencialmente da esquerda para a direita e de cima para baixo; Respeita o tamanho dos componentes mesmo que não haja espaço no Container Percebam a diferença de aparência entre os botões “dois” e “três”

31

32 Grid Layout Similar ao FlowLayout, mas cada componente é alocado em uma célula de igual tamanho. Pode-se definir um vetor ou matriz de células nas quais os componentes são alocados Divide a área em uma grade Dispõe os elementos da esquerda para a direita e de coma para baixo Todas as células de igual tamanho

33

34 Outro Exemplo de Grid

35

36

37 GridBagLayout Semelhante ao GridLayout, porém as divisões podem ter tamanhos diferentes Utiliza a classe GridBagConstraints para dimensionar e posicionar os componentes É flexível, porém complicado de usar. Sendo assim é escolhido somente quando os outros tipos não se encaixam na necessidade

38 BorderLayout Layout padrão para a maioria das aplicações
Componentes são adicionados especificando a área que irá ocupar. Divide o Container em cinco regiões: BorderLayout.CENTER BorderLayout.NORTH BorderLayout.EAST BorderLayout.SOUTH BorderLayout.WEST

39 BorderLayout

40 BoxLayout Respeita o tamanho dos componentes
Coloca os componentes em linha ou coluna BoxLayout.X_AXIS para componentes em linha BoxLayout.Y_AXIS para componentes em coluna

41

42


Carregar ppt "POO - II Prof.: Jean Carlo Mendes"

Apresentações semelhantes


Anúncios Google