Programação Orientada a Objetos II Prof. Pedro Luís Antonelli Anhanguera Educacional Primeiros passos de Java com a IDE NetBeans O NetBeans IDE é um ambiente de desenvolvimento integrado (IDE) gratuito e de código aberto para desenvolvedores de software nas linguagens Java, C, C++, PHP, Groovy, Ruby, entre outras. O IDE é executado em muitas plataformas, como Windows, Linux, Solaris e MacOS. O NetBeans IDE oferece aos desenvolvedores ferramentas necessárias para criar aplicativos profissionais de desktop, empresariais, Web e móveis multiplataformas. Requisitos para utilizar a IDE NetBeans - NetBeans IDE ( www.netbeans.org ) - Java Development Kit (JDK) (www.oracle.com) Configurando o Projeto - Iniciar o NetBeans IDE; - No IDE, escolha Arquivo > Novo projeto (Ctrl-Shift-N), como mostrado na figura abaixo: Configurando o Projeto - No assistente para Novo projeto, expanda a categoria Java e selecione Aplicação Java, como mostrado na figura abaixo. - Em seguida clique em Próximo. Configurando o Projeto - Definir o nome do projeto; Desmarcar a caixa “Usar pasta dedicada para armazenar bibliotecas”; - Clicar em Finalizar. Projeto Configurado Executando o Projeto... Saída dos resultados: Melhorando o Projeto Interagindo com o usuário: Importando a classe Scanner da biblioteca java.util criando um objeto chamado entrada que é do tipo Scanner criando um objeto chamado nome que é do tipo String. Mostrando o resultado Executando o Projeto Melhorado Solicitando que o usuário digite seu nome Usuário informando seu nome O programa mostrando o resultado. A.P.I. JAVA Interfaces de Programação de Aplicações, ou Application Programming Interface (API) contêm centenas de classes prédefinidas que se pode utilizar no programas. As Classes da API JAVA são organizadas dentro do que chamamos de pacotes. Pacotes contêm classes que se relacionam com um determinado propósito. O pacote “java.lang” O pacote java.lang contém as classes que constituem recursos básicos da linguagem, necessários à execução de qualquer programa Java. Entre as classes desse pacote destacam-se: Object expressa o conjunto de funcionalidades comuns a todos os objetos Java; Class e ClassLoader representa classes Java e o mecanismo para carregá-las dinamicamente; String e StringBuffer permite a representação e a manipulação de strings, fixos ou modificáveis; Math contém a definição de métodos para cálculo de funções matemáticas (trigonométricas, logarítimicas, exponenciais, etc) e de constantes, tais como Math.E e Math.PI; Boolean, Character, Byte, Short, Integer, Long, Float, Double são classes wrappers, permitindo a manipulação de valores dos tipos literais da linguagem como se fossem objetos; System, Runtime e Process são classes que permitem interação da aplicação com o ambiente de execução; Thread, Runnable, ThreadGroup classes que dão suporte à execução de múltiplas linhas de execução; Throwable, Error e Exception classes que permitem a definição e manipulação de situações de erros e condições inesperadas de execução. Entrada de dados pelo usuário Existem três formas básicas para entrada de dados: − Através da Classe BufferedReader; − Através da Classe Scanner; − Através da Classe JOptionPane. Exemplo usando a Classe “BufferedReader” Exemplo usando a Classe “Scanner” Usando a Classe “Scanner” Quando usar a classe Scanner, utilize e um dos métodos abaixo para capturar os dados, de acordo com o tipo do dado: GUI - GRAPHICAL USER INTERFACE A interface gráfica com o usuário (GUI - Graphical User Interface) dão, de forma intuitiva, ao usuário um nível básico de familiaridade, sem que jamais tenha usado o programa. Dessa forma, é reduzido o tempo de aprendizado do programa pelo usuário. Elementos de uma GUI • componentes: Elementos desenhados na tela. Exemplos: botão, textbox, label, etc. • containers: elementos que servem como agrupadores lógicos para componentes. Exemplo: Panel. • Containers de alto nível: cidadãos de primeira classe, que efetivamente ocupam um espaço no desktop. Exemplos: Frame, DialogBox. GUI EM JAVA: AWT E SWING A Idéia inicial da Sun: Abstract Windowing Toolkit – AWT – Criar um conjunto de classes e métodos que possam ser usados para escrever uma GUI multi-plataforma; – Não era poderosa o suficiente, sendo extremamente limitada. Segunda edição (JDK v1.2): Swing – Nova biblioteca, construída do zero que permite gráficos e GUIs muito mais poderosos e flexíveis. Por compatibilidade retroativa, ambos existem no Java e, às vezes, nós usamos os dois. CLASSES AWT e SWING A Classe “JOptionPane” Outro modo de entrada e saída de dados é utilizar a classe JOptionPane, que pertence ao pacote javax.swing. A JOptionPane possui métodos que permitem mostrar uma caixa de diálogo para que o usuário informe os dados. Sua principal utilização se dá através dos 4 métodos estáticos ( que não necessitam de uma instância para ser invocado ) abaixo: A “Caixa de Diálogo de Mensagem” A Caixa de Diálogo de Mensagem permite interagir com o usuário de forma gráfica. Sua sintaxe é : showMessageDialog(Component parentComponent, Object message, String title, int messageType); Onde: Component parentComponent : - Componente sobre qual o dialogo será criado; Object message :A mensagem que será mostrada na tela. Normalmente é uma String, porém a mensagem será mostrada conforme seu tipo: - Component – O componente será mostrado conforme seu padrão; - Icon – Será mostrado a figura na tela como seu padrão; - Outros – O objeto será transformado em String conforme seu método Object.toString(); A “Caixa de Diálogo de Mensagem” – cont. String title – O titulo do diálogo, será mostrado na barra de titulo; Int messageType – Define o tipo da mensagem – ícone do diálogo: Exemplos de “Caixas de Diálogo de Mensagens” Exemplos de “Caixas de Diálogo de Mensagens” Exemplos de “Caixas de Diálogo de Mensagens” A “Caixa de Diálogo de Confirmação” A Caixa de Diálogo de Confirmação permite interagir com o usuário de forma gráfica. Sua sintaxe é : showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType); Obs. Os atributos do método showConfirnDialog são os mesmo do estudado anteriormente, exceto por : int optionType que define os botões de resposta do diálogo, pode ser: Valor de Retorno: Valor inteiro do botão que o usuário clicou. Exemplos de “Caixas de Diálogo de Confirmação” A “Caixa de Diálogo de Entrada” A Caixa de Diálogo de Entrada permite interagir com o usuário de forma gráfica. Sua sintaxe é : showInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[ ] valoreSelecionáveis, Object valorInicial); Obs. Os atributos do método showInputDialog são os mesmo do estudado anteriormente, exceto por : Icon icon que define o ícone mostrado no diálogo; Object[ ] valorSelecionáveis – Vetor de objetos que será dispostos – em um JComboBox – para a seleção do usuário. Se null, ao invés do JComboBox o usuário poderá digitar sua entrada em uma caixa de texto. A “Caixa de Diálogo de Entrada” Object valorInicial – Valor previamente selecionado, ou valor já digitado na caixa, se for o caso. Valor de Retorno: String – Retorna a String que o usuário digitou, ou o objeto selecionado. Exemplos de “Caixa de Diálogo de Entrada” Exemplos de “Caixa de Diálogo de Entrada” A “Caixa de Diálogo de Opções” A Caixa de Diálogo de Opções permite interagir com o usuário de forma gráfica. Sua sintaxe é : showOptionDialog (Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[ ] valoreSelecionáveis, Object valorInicial); Obs. Os atributos do método showOptionDialog são os mesmo do estudado anteriormente, exceto por : Int optionType que define o ícone mostrado no diálogo; Valor de retorno: int – Valor inteiro do botão que o usuário clicou. Exemplos de “Caixa de Diálogo de Opções” Exercícios 1- Implemente no modo texto, um programa que leia dois números reais, efetue uma operação matemática escolhida usuário e mostre o resultado; 2- Implemente o programa anterior utilizando as caixas de diálogo vistas na aula . BIBLIOGRAFIA BÁSICA PADRÃO SANTOS, Rafael. Introdução à Programação Orientada a Objetos Usando Java. 1ª ed. Rio de Janeiro: Campus - Elsevier, 2008. BIBLIOGRAFIA BÁSICA DA UNIDADE 1) DEITEL, Harvery M.. Java : Como Programar. 6ª ed. São Paulo: Pearson - Prentice Hall, 2007. 2) SIERRA, Kathy; BATES, Bert. Use a Cabeça! Java. 1ª ed. Rio de Janeiro: Alta Books, 2005. BIBLIOGRAFIA COMPLEMETAR 1) BARNES, David J.. PROGRAMAÇÃO ORIENTADA A OBJETOS COM JAVA : UMA INTRODUÇÃO PRÁTICA USANDO O BLUE J. 1ª ed. São Paulo: Pearson, 2004. 2) KURNIAWAN, Budi. Java para Web com Servlets, JSP e EJB. 1ª ed. Rio de Janeiro: Ciência Moderna, 2002. 3) GOMES ASCENCIO, Ana Fernanda; CAMPOS, Edilene A.V. de. Fundamentos da Programação de Computadores : Algoritmos, Pascal, C/C++ e Java. 2ª ed. São Paulo: Pearson - Prentice Hall, 2008. 4) HORSTMANN, Cay S.; CORNELL, Gary. Core Java 2 : Fundamentos. 7ª ed. Rio de Janeiro: Alta Books, 2005. 5) ANSELMO, Fernando. Tudo Sobre a JSP : Com o Netbeans em Aplicações Distribuídas. 1ª ed. São Paulo: VisualBooks, 2005.