1 / 173

Aplicações JAVA Modo Gráfico Standalone

Aplicações JAVA Modo Gráfico Standalone. Paulo Vinícius Wolski Radtke PUC PR - radtke@ppgia.pucpr.br. Aplicações Standalone Gráficas. Trabalham com componentes de interface gráfica; Tais componentes fazem parte do Abstract Windows Toolkit (AWT);

haig
Download Presentation

Aplicações JAVA Modo Gráfico Standalone

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aplicações JAVAModo Gráfico Standalone Paulo Vinícius Wolski Radtke PUC PR - radtke@ppgia.pucpr.br

  2. Aplicações Standalone Gráficas • Trabalham com componentes de interface gráfica; • Tais componentes fazem parte do Abstract Windows Toolkit (AWT); • É um pacote de classes dedicado a interface gráfica, eventos, etc; • A partir do JDK 1.2 (1.1 opcional) há o pacote Swing para interface.

  3. AWT - Janelas

  4. AWT - Exemplo de Aplicação StandAlone Gráfica public class App { Button b; public App() { this(“”); } public App(String titulo) { super(titulo); b = new Button(“Ok”); enableEvents(WindowEvent.WINDOW_CLOSING); pack(): }

  5. public void processWindowEvent(WindowEvent e) { switch (e.getID()) { case e.WINDOW_CLOSING: system.exit(0); return; default: super.processWindowEvent(e); } public static void main(String args[]) { App a = new App(“Janela”); a.setVisible(true); } } • obs: no exemplo acima o código system.exit(0) encerra a aplicação. No caso de uma janela modal, o correto seria setVisible(false) para fechar a janela e entregar o controle à janela principal da aplicação.

  6. AWT - Janelas • A classe Window fornece apenas o comportamento geral de uma janela, não podemos instanciá-la ; • Normalmente utilizamos instâncias de Frame ou Dialog.

  7. AWT - Janelas • Frame fornece um título para a janela, caixas para fechá-la, e outras características específicas de plataforma ; • Frame também permite que sejam adicionados menus.

  8. AWT - Janelas • Dialog é uma forma mais limitada de Frame, que tipicamente não tem um título; • FileDialog é uma subclasse de dialog, que fornece suporte para seleção de arquivos.

  9. AWT - Frames • Frames são janelas que são independentes de um applet e do browser que os contém ; • Frames podem ter menus ; • Um frame é uma janela com título, menu e outras características de uma janela.

  10. AWT - Frames • Para criarmos um frame utilizamos : • new Frame() : cria um frame sem um título ; • new Frame(String str) : cria um frame com o título indica por srt. • Frames se comportam de maneira parecida com panels ; • Layouts são selecionados e componentes são adicionados da mesma maneira.

  11. AWT - Frames • No exemplo abaixo, criamos um frame, definimos um layout e inserimos dois botões : win = new Frame(“Minha Janela”); win.setLayout(new GridLayout(2,1); win.add(new Button(“Botão 1”)); win.add(new Button(“Botão 2”)); • Podemos determinar o tamanho do frame utilizando o método resize.

  12. AWT - Frames • Outro método é, ao invés de usar o resize, fazer com que o frame tenha o tamanho mínimo para conter todos os seus componentes ; • O método pack implementa essa funcionalidade ; • Devemos chamar esse método apenas depois de adicionarmos os componentes.

  13. AWT - Frames • Um frame normalmente está invisível quando o criamos ; • Para exibi-lo, precisamos usar o método setVisible do frame : win.setVisible(true); • Para esconder o frame utilizamos o mesmo método : win.setVisible(false);

  14. AWT - Frame • Apesar da janela aparecer, não há um método para destruí-la ; • Caso ela estivesse visível na tela quando o browser fosse fechado, ela continuaria a rodar ; • A única maneira então é destruir a tarefa no gerenciador de tarefas.

  15. AWT - Frame • Para habilitarmos a capacidade da janela se destruir, precisamos capturar o evento do fechamento da janela (X no canto superior direito da janela).

  16. AWT - Frame • Para capturarmos esse evento, tratamos um evento de WindowListner ou habilitamos a janela para tratar de evento; • Para habilitarmos o tratamento de eventos (mais simples em código), utilizamos o seguinte código no construtor: enableEvents(WindowEvent.WINDOW_CLOSING);

  17. AWT - Frame • Também devemos implementar o seguinte método: public void processWindowEvent(WindowEvent e) { switch (e.getID()) { case e.WINDOW_CLOSING: setVisible(false); return; default: super.processWindowEvent(e); } }

  18. AWT - Menus • Cada janela criada pode ter a sua própria barra de menu ; • Cada barra de menu pode ter diversos menus ; • Cada menu pode ter itens de menu ; • Cada um desses itens são representados pelas classes MenuBar, Menu e MenuItem.

  19. AWT - Menus

  20. AWT - Menus • Para criar um menu para uma dada janela, crie uma nova instância da classe MenuBar: MenuBar mbar = new MenuBar(); • Para ver este menu como o menu default para a janela, use o método setMenuBar() da classe Frame.

  21. AWT - Menus • Para adicionar menus individuais é necessário criá-los e efetivamente adicioná-los ao menu : Menu myMenu = new Menu(“Arquivo”); mbar.add(myMenu); • Os itens serão adicionados da esquerda para a direita.

  22. AWT - Menus • Alguns sistemas fornecem um menu especial para ajuda, que é desenhado no canto direito da barra ; • Podemos indicar que um menu em específico é um help menu utilizamos o método setHelpMenu() : Menu help = new Menu(“Help”); mbar.add(help); mbar.setHelpMenu(helpmenu);

  23. AWT - Menus • Se por algum motivo quisermos evitar que o usuário selecione um menu, utilizamos o método disable() do menu, e enable() para torná-lo disponível novamente : myMenu.disable(); myMenu.enable();

  24. AWT - Menus • Há quatro tipos de itens de menus que podemos adicionar : • MenuItem : itens regulares de menu ; • CheckBoxMenuItem : itens de menu que podem ser marcados/desmarcados ; • Outros menus, com seus próprios itens ; • Separadores, que separam grupos uns dos outros.

  25. AWT - Menus • Itens de menu são adicionados usando a classe MenuItem ; • Adicionamo-os a um menu com o método add : Menu meumenu = new Menu(“Arquivo”); meumenu.add(new MenuItem(“Abre”); meumenu.add(new MenuItem(“Fecha”);

  26. AWT - Menus • Para adicionarmos um submenu ao menu, criamos um novo menu e o adicionamos ao menu : Menu meumenu = new Menu(“Arquivo”); meumenu.add(new MenuItem(“Abre”); meumenu.add(new MenuItem(“Fecha”); Menu recente = new Menu(“Recentes”); meumenu.add(recente);

  27. AWT - Menus • Para criarmos um item de menu que seja selecionável, criamos uma intância de CheckBoxMenuItem ; • O criamos como um item de menu e o adicionamos ; CheckBoxMenuItem coords = new CheckBoxMenuItem(“Mostra Coordenadas”); meumenu.add(coords);

  28. AWT - Menus • O último elemento que podemos inserir num menu são os separadores ; • É uma linha que separa grupos de itens de menu ; • O separador é um item com um “-” : MenuItem separador = new Menuitem(“-”); meumenu.add(separador);

  29. AWT - Menus • A ação de selecionar um item de menu gera um evento ; • O tratamento deve ser feito no método com os listners ActionListner (itens de menu) e ItemListner (CheckboxMenuItem).

  30. Aplicações Standalone GráficasTamanho da Janela • Para descobrirmos o tamanho, utilizamos o método getSize, e as variáveis width e height da clase Dimension retornada ; • getSize().heigth retorna a altura do applet ; • getSize().width retorna a largura do applet; • Para modificarmos o tamanho da janela, utilizamos o método setSize.

  31. JAVA - Interfaces com AWT • AWT fornece : • Um conjunto completo para interface gráfica, incluindo menus, scrollbars, botões, etc; • Suporte a containers de interface gráfica; • Um sistema de eventos para gerenciar eventos de sistema e do usuário entre os componentes AWT; • Mecanismos para dispor componentes que permitem independência de plataforma.

  32. JAVA - Interfaces com AWT • A idéia básica por trás de AWT é que um programa JAVA com interface gráfica é um aninhamento de componentes, começando na janela mais externa e descendo até o menor componente de interface; • Todas as classes componentes da AWT estão no pacote java.awt.

  33. JAVA - Interfaces com AWT • Os componentes que podemos trabalhar em AWT são : • Containers :são componentes AWT gerais que podem conter outros componentes AWT, incluindo outros containers. O container mais comum é o panel, que é um container que pode ser exibido na tela. • Canvas : Um canvas é uma superfície para “desenhos”. Mesmo que você possa “desenhar” em containers (todos exemplos até agora foram feitos assim), canvas são preferíveis para desenhar imagens ou outras operações gráficas.

  34. JAVA - Interfaces com AWT • Componentes de Interface Usuário : São os botões, listas, menus pop-up, check boxes e outros elementos típicos de interface gráfica ; • Componentes de Construção de Janela : São as janelas, frames, barras de menu, etc. Eles são separados dos componente anteriores por não serem usados em applets.

  35. JAVA - Interfaces com AWT

  36. AWT - Componentes Básicos • Componentes Básicos de Interface : • O componente AWT mais simples é o componente de interface usuário ; • É possível inserí-los sem grandes dificuldades num applet no método init.

  37. AWT - Componentes Básicos • Tipos de componentes IU básicos : • Labels ; • Botões ; • Check boxes ; • Menus de escolha ; • Text fields.

  38. AWT - Componentes Básicos • Exemplo : Adicionando um botão a um applet : public void init() { Button b = new Button(“OK”); add(b); }

  39. AWT - Componentes Básicos • Apesar de ser possível utilizar o código anterior para inserir um componente, este é desaconselhável; • Mais tarde, se for necessário referenciar o botão, não haverá uma instância acessível para os métodos do applet; • É preferível ter um atributo da classe para armazenar as referências.

  40. AWT - Componentes Básicos Class App extends Applet { Button b; public void init() { b = new Button(“OK”); add(b); } ...

  41. AWT - Componentes Básicos • O código anterior apenas cria uma instância de botão com o texto “OK” impresso sobre a sua face; • O botão é simplesmente inserido no applet, na primeira posição livre (isto é, sem componentes).

  42. AWT - Labels • Componente mais simples; • Consiste de um texto (uma string) que é desenhada na tela; • Um label não é editável, é apenas mais um componente na tela.

  43. AWT - Labels • Um label tem vantagens sobre uma string ordinária desenhada na tela: • Não é preciso redesenhar labels manualmente, AWT cuida disso; • Labels seguem um layout, e podem ser alinhados com outros elementos (o que veremos mais tarde);

  44. AWT - Labels • Para criarmos um label, utilizamos um dos seguintes construtores: • Label() : cria um label sem nenhum texto; • Label(String) : cria um label com um texto especificado por String; • Label(String, int) : cria um label com o texto especificado por String e alinhado.

  45. AWT - Labels • No último construtor, o parâmetro inteiro indica um alinhamento do texto ; • Tal parâmetro pode ser obtido da própria classe Label, através das constantes : • Label.LEFT; • Label.RIGHT; • Label.CENTER.

  46. AWT - Labels • Métodos de um label : • getText() : retorna o texto associado a um label; • setText(String) : armazena um String específica no label; • getAlignment() : retorna um inteiro representando o alinhamento do label; • setAlignment(int) : Muda o alinhamento do texto.

  47. AWT - Botões • Botões são componentes simples de interface usuário que disparam alguma ação quando são pressionados ; • Por exemplo, uma aplicação pode ter um botão EXIT que feche a aplicação quando pressionado.

  48. AWT - Botões • Para criar-se um botão, podemos usar um dos seguintes construtores : • Button() : cria um botão sem nenhum texto impresso na face ; • Button(String) : cria um botão com o texto especificado em String impresso em sua face.

  49. AWT - Botões • Exemplo para criar-se botões : public void init() { add(new Button(“Ok”); add(new Button(“Cancel”); }

  50. AWT - Check Boxes • Check boxes são componentes que tem dois estados : ligado ou desligado. • A mudança de estado no check box dispara um evento; • Seu estado será utilizado em um evento, como característica opcional.

More Related