Este documento fornece informações sobre um curso de Java Swing. Ele descreve o objetivo, público-alvo, pré-requisitos, metodologia, cronograma e avaliação do curso. Além disso, apresenta os tópicos a serem ensinados, incluindo uma visão geral do Java Swing, containers, componentes e gerenciadores de layout.
O documento fornece uma introdução aos fundamentos da arquitetura da Web. Resume os principais conceitos como:
1) A plataforma da Web é baseada no protocolo HTTP e na comunicação entre cliente e servidor;
2) As tecnologias do lado do cliente incluem HTML, CSS e JavaScript para estrutura e interatividade das páginas;
3) As tecnologias do lado do servidor incluem CGI, APIs e scripts para processamento dinâmico de requisições.
O documento discute a API Java IO, que fornece classes e métodos para entrada e saída de dados em Java. A API permite ler e escrever arquivos, bytes e strings, usando fluxos, buffers e classes como FileInputStream, FileOutputStream, PrintStream e Scanner. Exemplos mostram como ler e escrever arquivos e do teclado usando BufferedReader, FileWriter e FileReader.
O documento descreve e compara três padrões de arquitetura de software: MVC, MVP e MVVM. O MVC divide uma aplicação em três camadas separadas - Model, View e Controller. O MVP é semelhante ao MVC mas com o Presenter separando a lógica da interface do usuário. O MVVM é usado principalmente para aplicações WPF/Silverlight e usa binding entre a View e ViewModel para atualizar a interface.
O documento discute os principais conceitos da Web 2.0, incluindo sua evolução, tecnologias envolvidas e oportunidades de mercado. Aborda tópicos como a história da web, modelos de desenvolvimento, linguagens como HTML, CSS e JavaScript e padrões como W3C.
Curso Treinamento Automação de testes com Selenium QualisterQualister
O documento fornece informações sobre os serviços de uma empresa de testes de software chamada Qualister, incluindo treinamentos em automação de testes com Selenium, consultoria em teste, terceirização de profissionais, avaliação de usabilidade e testes de performance. O documento também apresenta detalhes sobre o instrutor de um curso de automação de testes com Selenium.
What is WebElement in Selenium | Web Elements & Element Locators | EdurekaEdureka!
YouTube Link: https://youtu.be/r149MTf4DfI
(** Selenium Training: https://www.edureka.co/selenium-certification-training **)
This Edureka ‘Web elements in Selenium’ video helps you understand how web element plays a major role in testing an application.
Topics to be covered in this PPT
What are web elements
Different types of web elements
Operations performed on the web elements
Introduction to element locators
Web element Interface - Demo
Selenium playlist: https://goo.gl/NmuzXE
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Este documento fornece diretrizes para documentar o desenvolvimento de um software, incluindo requisitos, projeto, implementação, testes e implantação. Ele descreve os componentes necessários para documentar um projeto de software, como introdução, descrição geral do sistema, requisitos, análise e design, implementação, testes e implantação.
O documento fornece uma introdução aos fundamentos da arquitetura da Web. Resume os principais conceitos como:
1) A plataforma da Web é baseada no protocolo HTTP e na comunicação entre cliente e servidor;
2) As tecnologias do lado do cliente incluem HTML, CSS e JavaScript para estrutura e interatividade das páginas;
3) As tecnologias do lado do servidor incluem CGI, APIs e scripts para processamento dinâmico de requisições.
O documento discute a API Java IO, que fornece classes e métodos para entrada e saída de dados em Java. A API permite ler e escrever arquivos, bytes e strings, usando fluxos, buffers e classes como FileInputStream, FileOutputStream, PrintStream e Scanner. Exemplos mostram como ler e escrever arquivos e do teclado usando BufferedReader, FileWriter e FileReader.
O documento descreve e compara três padrões de arquitetura de software: MVC, MVP e MVVM. O MVC divide uma aplicação em três camadas separadas - Model, View e Controller. O MVP é semelhante ao MVC mas com o Presenter separando a lógica da interface do usuário. O MVVM é usado principalmente para aplicações WPF/Silverlight e usa binding entre a View e ViewModel para atualizar a interface.
O documento discute os principais conceitos da Web 2.0, incluindo sua evolução, tecnologias envolvidas e oportunidades de mercado. Aborda tópicos como a história da web, modelos de desenvolvimento, linguagens como HTML, CSS e JavaScript e padrões como W3C.
Curso Treinamento Automação de testes com Selenium QualisterQualister
O documento fornece informações sobre os serviços de uma empresa de testes de software chamada Qualister, incluindo treinamentos em automação de testes com Selenium, consultoria em teste, terceirização de profissionais, avaliação de usabilidade e testes de performance. O documento também apresenta detalhes sobre o instrutor de um curso de automação de testes com Selenium.
What is WebElement in Selenium | Web Elements & Element Locators | EdurekaEdureka!
YouTube Link: https://youtu.be/r149MTf4DfI
(** Selenium Training: https://www.edureka.co/selenium-certification-training **)
This Edureka ‘Web elements in Selenium’ video helps you understand how web element plays a major role in testing an application.
Topics to be covered in this PPT
What are web elements
Different types of web elements
Operations performed on the web elements
Introduction to element locators
Web element Interface - Demo
Selenium playlist: https://goo.gl/NmuzXE
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Este documento fornece diretrizes para documentar o desenvolvimento de um software, incluindo requisitos, projeto, implementação, testes e implantação. Ele descreve os componentes necessários para documentar um projeto de software, como introdução, descrição geral do sistema, requisitos, análise e design, implementação, testes e implantação.
Robot Framework - principais característicasalinebiath
Um pouco do que aprendi sobre essa ferramenta de automação para testes (web, mobile, API, etc).
Aqui não esgotamos o assunto! Tem muito mais. Aconselho a leitura dos links nas referências, principalmente o User guide do Robot Framework.
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...Mayara Fernandes
Slides e exercícios do tutorial ministrado em 08/04/2018 no Python Sul 2018 edição Floripa.
Correção: Link SLACK https://join.slack.com/t/robotframeworkbrasil/shared_invite/enQtMjg4ODUwNjkxNTcyLTliZDEyNGZhZDA0MDkyYWUxOGMyMmJhZDlhYmRhZTlhMDMwYTljODllYTdlZThjYTQxYzlhNGQ0ZTA5N2UwMjk
O documento apresenta uma introdução ao Robot Framework, um framework de automação de testes open source baseado em Python. A palestra discute os conceitos-chave do Robot Framework, incluindo sua arquitetura baseada em keywords, estrutura de arquivos e seções, tipos de testes suportados e como executar testes. Além disso, apresenta exemplos de keywords e bibliotecas comuns utilizadas para testes web.
O documento introduz conceitos básicos de engenharia de software, abordando:
1) A definição de software e sua classificação em diferentes categorias;
2) Os principais problemas que levaram à "crise do software" e a evolução da área ao longo das décadas;
3) Os papéis e disciplinas associados ao desenvolvimento de software.
O documento descreve as principais linguagens usadas para criar páginas web: HTML para estrutura, CSS para estilo e formatação, e JavaScript para comportamento e interatividade. Explica brevemente o que cada uma faz e recomenda ferramentas como Notepad++ e navegador Chrome para começar a programa-las.
O documento descreve um curso sobre testes automatizados em Python. O curso aborda:
1) Testes unitários, de integração e funcionais com foco nos fundamentos de testes automatizados;
2) A prática do uso de testes automatizados no desenvolvimento guiado por testes (TDD);
3) As vantagens da abordagem TDD no curto e longo prazo e dos testes automatizados no longo prazo.
O documento apresenta a agenda de um mini-curso de 5 dias sobre JavaScript. O curso abordará tópicos como sintaxe e estrutura da linguagem, funções e objetos, objetos nativos do browser, janelas do browser e depuração do DOM. Cada dia será dedicado a um ou dois episódios sobre esses assuntos.
1. Implemente classes Funcionário, Gerente e Assistente, com atributos e métodos próprios. Gerente e Assistente herdam de Funcionário.
2. Crie subclasses Técnico e Administrativo da classe Assistente, com atributos adicionais.
3. Implemente classes Pessoa, Trabalhador e Miserável com atributos, construtores e métodos. Trabalhador e Miserável herdam de Pessoa.
4. Crie classes Ingresso, VIP e Normal para ingressos de eventos, com atributos, métodos e
Data driven Automation Framework with Selenium Edureka!
The document discusses designing a data-driven automation testing framework with Selenium. It describes different types of Selenium testing frameworks, including keyword-driven, data-driven, and hybrid frameworks. It provides examples of how to build each type of framework using Selenium and details how data-driven frameworks allow testing an application with different data sets. The document also promotes an Edureka course on mastering Selenium automation testing that includes lectures, assignments, and a project.
[1] O documento descreve elementos básicos de algoritmos como variáveis, tipos de dados, operadores, funções e estruturas de controle.
[2] São apresentados tipos de dados como inteiro, real, caractere e lógico, e operadores aritméticos, relacionais e lógicos.
[3] Estruturas de controle como condicionais simples e compostas e repetições por condição e contagem são explicadas com exemplos de algoritmos.
Microsoft Blazor which allows developers to leverage the existing skills and makes .NET syntaxes render within the browser with the blend of Razor and the taste of Angular. It supports latest Single Page Application demanding technologies such as Routing, Layouting and Dependency Injection.
The document provides information about a PHP framework lecture on Laravel. It includes the course code, department, lecturer, semester, and lecture outline. The lecture covers an introduction to Laravel, installing and running the framework, the directory structure, routing basics, the view engine Blade, and creating views. Key points about Laravel are that it makes tasks like authentication and caching easy and offers a powerful tool called Artisan to perform repetitive tasks. Composer is used to manage Laravel dependencies.
The document discusses the MVC framework, describing the model, view, and controller components. The model handles business logic and data access, the view handles the user interface, and the controller coordinates communication between the model and view. It also covers how data is passed between these components, the use of ViewData and ViewBag to store data, Razor syntax for combining C# and HTML in views, and how to create and call partial views.
O documento apresenta informações sobre um curso de desenvolvimento web ministrado pelo professor Rodrigo Santa Maria, incluindo sua formação acadêmica, experiência profissional e objetivos do curso.
O Modelo Incremental é um método de desenvolvimento de software em partes incrementais, onde cada parte é desenvolvida separadamente e então integrada. O modelo permite entregas parciais do software para identificar erros e atender novas necessidades, além de ser flexível e gerenciável. Porém, pode apresentar problemas de arquitetura e gestão de custos devido ao número variável de iterações.
O documento descreve os conceitos e estrutura básica da arquitetura cliente-servidor. A arquitetura divide os processos entre clientes e servidores, onde os servidores fornecem recursos como bancos de dados e arquivos e os clientes solicitam esses serviços. A arquitetura evoluiu de duas camadas para três e quatro camadas para melhor distribuir a lógica, apresentação e dados.
Qualidade de Software: Teste de softwareAlex Camargo
O documento discute os conceitos básicos e tipos de testes de software, incluindo: (1) testes de caixa branca como teste de unidade e integração, (2) testes de caixa preta como teste funcional, de aceitação e exploratório, e (3) testes de caixa cinza como teste de regressão e cobertura. O documento também descreve os papéis da equipe de teste, como gerente, arquiteto e testador.
This document provides an overview of ASP.NET Core, including:
1. ASP.NET Core is a cross-platform framework for building modern cloud-based web applications using .NET that can run on Windows, Linux, and Mac OS.
2. It is designed to be modular and include only necessary packages, making it faster and lighter weight than previous ASP.NET frameworks. It also supports dependency injection and inversion of control out of the box.
3. The project structure for an ASP.NET Core application includes folders for wwwroot (for static files), Properties (for settings), and Dependencies (for NuGet and client-side packages). Configuration is done through the Program.cs and Startup
Este documento fornece informações sobre o Java 2 Micro Edition (J2ME), incluindo seu objetivo, público-alvo, pré-requisitos, descrição do plano de ensino, metodologia, cronograma, programa, avaliação e bibliografia. Ele também discute tópicos como introdução ao J2ME, sua instalação, história, arquitetura e como criar o primeiro programa.
Este documento apresenta um plano de ensino sobre JSP e Servlets. O documento discute o que são JSP e Servlets, apresenta o objetivo, público-alvo e pré-requisitos do curso, além de detalhar o cronograma e programa do curso. O documento também fornece instruções sobre instalação e configuração do ambiente de desenvolvimento, e aborda conceitos importantes como orientação a objetos, tags JSP, JSTL, ciclo de vida de servlets e tratamento de erros.
Robot Framework - principais característicasalinebiath
Um pouco do que aprendi sobre essa ferramenta de automação para testes (web, mobile, API, etc).
Aqui não esgotamos o assunto! Tem muito mais. Aconselho a leitura dos links nas referências, principalmente o User guide do Robot Framework.
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...Mayara Fernandes
Slides e exercícios do tutorial ministrado em 08/04/2018 no Python Sul 2018 edição Floripa.
Correção: Link SLACK https://join.slack.com/t/robotframeworkbrasil/shared_invite/enQtMjg4ODUwNjkxNTcyLTliZDEyNGZhZDA0MDkyYWUxOGMyMmJhZDlhYmRhZTlhMDMwYTljODllYTdlZThjYTQxYzlhNGQ0ZTA5N2UwMjk
O documento apresenta uma introdução ao Robot Framework, um framework de automação de testes open source baseado em Python. A palestra discute os conceitos-chave do Robot Framework, incluindo sua arquitetura baseada em keywords, estrutura de arquivos e seções, tipos de testes suportados e como executar testes. Além disso, apresenta exemplos de keywords e bibliotecas comuns utilizadas para testes web.
O documento introduz conceitos básicos de engenharia de software, abordando:
1) A definição de software e sua classificação em diferentes categorias;
2) Os principais problemas que levaram à "crise do software" e a evolução da área ao longo das décadas;
3) Os papéis e disciplinas associados ao desenvolvimento de software.
O documento descreve as principais linguagens usadas para criar páginas web: HTML para estrutura, CSS para estilo e formatação, e JavaScript para comportamento e interatividade. Explica brevemente o que cada uma faz e recomenda ferramentas como Notepad++ e navegador Chrome para começar a programa-las.
O documento descreve um curso sobre testes automatizados em Python. O curso aborda:
1) Testes unitários, de integração e funcionais com foco nos fundamentos de testes automatizados;
2) A prática do uso de testes automatizados no desenvolvimento guiado por testes (TDD);
3) As vantagens da abordagem TDD no curto e longo prazo e dos testes automatizados no longo prazo.
O documento apresenta a agenda de um mini-curso de 5 dias sobre JavaScript. O curso abordará tópicos como sintaxe e estrutura da linguagem, funções e objetos, objetos nativos do browser, janelas do browser e depuração do DOM. Cada dia será dedicado a um ou dois episódios sobre esses assuntos.
1. Implemente classes Funcionário, Gerente e Assistente, com atributos e métodos próprios. Gerente e Assistente herdam de Funcionário.
2. Crie subclasses Técnico e Administrativo da classe Assistente, com atributos adicionais.
3. Implemente classes Pessoa, Trabalhador e Miserável com atributos, construtores e métodos. Trabalhador e Miserável herdam de Pessoa.
4. Crie classes Ingresso, VIP e Normal para ingressos de eventos, com atributos, métodos e
Data driven Automation Framework with Selenium Edureka!
The document discusses designing a data-driven automation testing framework with Selenium. It describes different types of Selenium testing frameworks, including keyword-driven, data-driven, and hybrid frameworks. It provides examples of how to build each type of framework using Selenium and details how data-driven frameworks allow testing an application with different data sets. The document also promotes an Edureka course on mastering Selenium automation testing that includes lectures, assignments, and a project.
[1] O documento descreve elementos básicos de algoritmos como variáveis, tipos de dados, operadores, funções e estruturas de controle.
[2] São apresentados tipos de dados como inteiro, real, caractere e lógico, e operadores aritméticos, relacionais e lógicos.
[3] Estruturas de controle como condicionais simples e compostas e repetições por condição e contagem são explicadas com exemplos de algoritmos.
Microsoft Blazor which allows developers to leverage the existing skills and makes .NET syntaxes render within the browser with the blend of Razor and the taste of Angular. It supports latest Single Page Application demanding technologies such as Routing, Layouting and Dependency Injection.
The document provides information about a PHP framework lecture on Laravel. It includes the course code, department, lecturer, semester, and lecture outline. The lecture covers an introduction to Laravel, installing and running the framework, the directory structure, routing basics, the view engine Blade, and creating views. Key points about Laravel are that it makes tasks like authentication and caching easy and offers a powerful tool called Artisan to perform repetitive tasks. Composer is used to manage Laravel dependencies.
The document discusses the MVC framework, describing the model, view, and controller components. The model handles business logic and data access, the view handles the user interface, and the controller coordinates communication between the model and view. It also covers how data is passed between these components, the use of ViewData and ViewBag to store data, Razor syntax for combining C# and HTML in views, and how to create and call partial views.
O documento apresenta informações sobre um curso de desenvolvimento web ministrado pelo professor Rodrigo Santa Maria, incluindo sua formação acadêmica, experiência profissional e objetivos do curso.
O Modelo Incremental é um método de desenvolvimento de software em partes incrementais, onde cada parte é desenvolvida separadamente e então integrada. O modelo permite entregas parciais do software para identificar erros e atender novas necessidades, além de ser flexível e gerenciável. Porém, pode apresentar problemas de arquitetura e gestão de custos devido ao número variável de iterações.
O documento descreve os conceitos e estrutura básica da arquitetura cliente-servidor. A arquitetura divide os processos entre clientes e servidores, onde os servidores fornecem recursos como bancos de dados e arquivos e os clientes solicitam esses serviços. A arquitetura evoluiu de duas camadas para três e quatro camadas para melhor distribuir a lógica, apresentação e dados.
Qualidade de Software: Teste de softwareAlex Camargo
O documento discute os conceitos básicos e tipos de testes de software, incluindo: (1) testes de caixa branca como teste de unidade e integração, (2) testes de caixa preta como teste funcional, de aceitação e exploratório, e (3) testes de caixa cinza como teste de regressão e cobertura. O documento também descreve os papéis da equipe de teste, como gerente, arquiteto e testador.
This document provides an overview of ASP.NET Core, including:
1. ASP.NET Core is a cross-platform framework for building modern cloud-based web applications using .NET that can run on Windows, Linux, and Mac OS.
2. It is designed to be modular and include only necessary packages, making it faster and lighter weight than previous ASP.NET frameworks. It also supports dependency injection and inversion of control out of the box.
3. The project structure for an ASP.NET Core application includes folders for wwwroot (for static files), Properties (for settings), and Dependencies (for NuGet and client-side packages). Configuration is done through the Program.cs and Startup
Este documento fornece informações sobre o Java 2 Micro Edition (J2ME), incluindo seu objetivo, público-alvo, pré-requisitos, descrição do plano de ensino, metodologia, cronograma, programa, avaliação e bibliografia. Ele também discute tópicos como introdução ao J2ME, sua instalação, história, arquitetura e como criar o primeiro programa.
Este documento apresenta um plano de ensino sobre JSP e Servlets. O documento discute o que são JSP e Servlets, apresenta o objetivo, público-alvo e pré-requisitos do curso, além de detalhar o cronograma e programa do curso. O documento também fornece instruções sobre instalação e configuração do ambiente de desenvolvimento, e aborda conceitos importantes como orientação a objetos, tags JSP, JSTL, ciclo de vida de servlets e tratamento de erros.
O documento apresenta uma introdução sobre a apostila "De Java para Python", discutindo sua licença, autores e garantias. Também fornece informações sobre o CDTC, como seu objetivo de promover o software livre, e orientações para alunos sobre participação em fóruns e wikis.
Este documento apresenta um curso básico sobre Java. Ele inclui seções sobre o que é Java, conceitos básicos como classes, objetos e métodos, estruturas de controle e entrada/saída, e conceitos avançados como herança e polimorfismo. O documento também fornece informações sobre licenças e créditos.
O documento discute o Java Database Connectivity (JDBC), incluindo sua instalação e conceitos básicos e avançados. Ele fornece detalhes sobre como conectar e interagir com bancos de dados relacionais usando JDBC, incluindo a criação e manipulação de tabelas, inserção, atualização e recuperação de dados, e o uso de transações.
Este documento fornece informações sobre Java AWT, incluindo o que é Java AWT, sua hierarquia de classes e como criar containers e componentes. Também discute como criar um primeiro frame Java e manipular eventos.
O documento apresenta informações sobre um curso introdutório sobre Java Applet, incluindo seu objetivo, público-alvo, pré-requisitos, programa, avaliação e bibliografia. Também discute conceitos básicos sobre applets e fornece um exemplo inicial de applet.
Dicas básicas para compilar e executar classes Java por linha de comando.
Também dicas para criar arquivos do tipo JAR e executá-los pela linha de comando.
Este documento describe las clases principales del paquete Swing en Java para crear interfaces gráficas de usuario. Describe las clases JButton, JCheckBox, JRadioButton, JComboBox y JList, explicando sus propiedades y funcionalidades como botones, casillas de verificación, botones de opción, listas desplegables y listas, respectivamente.
O documento apresenta uma introdução ao Java Swing, incluindo:
- Sobre o professor Sérgio Souza Costa e suas redes sociais
- Componentes básicos de interfaces gráficas como janelas, botões e caixas de combinação
- Diferenças entre AWT e Swing
- Principais controles do Swing como janelas, botões e caixas de texto
O documento discute a criação de interfaces gráficas em Java usando a biblioteca Swing. Ele explica como criar janelas, painéis, componentes gráficos como rótulos, caixas de texto e botões e como conectá-los. Além disso, apresenta outros objetos gráficos como áreas de texto e métodos importantes para manipular esses objetos. Por fim, sugere como criar uma classe que herda de JFrame para encapsular a janela e seus componentes.
The document discusses Java Foundation Classes (JFC) which provide components for building graphical user interfaces in Java. JFC includes Swing components like buttons and menus, pluggable look and feel, accessibility APIs, and drag and drop support. Swing provides standard GUI components and containers to organize components in windows. Top-level containers like JFrame are needed to display components on screen and provide support for painting and events.
Java programming presentations By Daroko blog
Do not just read java as a programmer, find projects and start making some Money, at DAROKO BLOG,WE Guide you through what you have learned in the classroom to a real business Environment, find java applications to a real business Environment, find also all IT Solutions and How you can apply them, find the best companies where you can get the IT jobs worldwide, Find java contract, Complete and start making some cash, find clients within your Country, refer and get paid when you complete the work.
Not Just a contact, at daroko Blog(www.professionalbloggertricks.com/),you are also being taught How you can apply all IT related field in real world.
Simply Google, Daroko Blog or visit (www.professionalbloggertricks.com/) to Know More about all these service now.
Do not just learn and god, Apply them in real world
The document provides an overview of developing user interfaces using Java. It discusses learning GUI programming concepts like components, layouts, and event-based programming. It then covers introductory Java topics like why Java is used, Java materials, key differences from C++, compiling Java code, creating Java applications and applets, and upcoming GUI and Java topics to be covered.
Java Swing provides graphical user interface (GUI) components for building desktop applications. It includes common widgets like buttons, text fields, labels and dialog boxes. JOptionPane allows building simple dialog boxes for input/output. Swing components are lightweight and platform-independent compared to the older AWT components. Common Swing components discussed include JFrame for windows, JButton for buttons, JLabel for text, JFileChooser for file selection and JCheckBox, JRadioButton for state buttons.
Este documento fornece um plano de ensino para um curso introdutório sobre microinformática e software. Ele discute o objetivo, público-alvo, pré-requisitos, descrição, metodologia, cronograma, programa, avaliação e bibliografia do curso. O documento também fornece resumos introdutórios para seis lições que compõem o curso sobre conceitos básicos de software, sistemas operacionais, processadores de texto, planilhas eletrônicas e a Internet.
O documento descreve um plano de ensino para um curso sobre servidores de email seguros. O plano inclui objetivos, público-alvo, pré-requisitos, cronograma e avaliação do curso. Além disso, aborda tópicos como instalação, configuração e integração de ferramentas de email seguro como AMaViSd-new, ClamAV e SpamAssassin.
Este documento fornece informações sobre o FWBuilder, um software de firewall. Discute o que é o FWBuilder, como instalá-lo e configurá-lo, incluindo objetos, regras de firewall e NAT. Também contém informações gerais sobre licenças de software livre e o projeto CDTC.
Este documento fornece informações sobre o curso FERM. Ele descreve o objetivo, público-alvo, pré-requisitos, programa e avaliação do curso. Além disso, explica conceitos básicos sobre firewalls como estrutura de arquivos, palavras-chave e parâmetros.
O documento discute o protocolo XDMCP (X Display Manager Control Protocol), incluindo sua história, instalação e configuração. Fornece detalhes sobre como usar o XDMCP via GDM para gerenciar displays remotos.
Este documento fornece instruções sobre como instalar o software livre Xoops, um sistema de gerenciamento de conteúdo. Ele discute os pré-requisitos, download, instalação do Xoops e de temas e módulos adicionais. Inclui informações sobre configuração de módulos como xcgallery e xtconteudo.
Este documento apresenta um plano de ensino para um curso sobre o programa Screen. Inclui informações sobre objetivos, público-alvo, pré-requisitos, cronograma e avaliação. Também contém instruções sobre instalação, configuração e uso do Screen, incluindo acesso a múltiplas sessões e aplicações em segundo plano.
Este documento fornece informações sobre o wxPython, um framework para desenvolvimento de interfaces gráficas para usuários em Python. Ele discute o objetivo, público-alvo e metodologia de um curso sobre wxPython, além de introduzir os principais conceitos como janelas, menus e layouts.
Este documento fornece informações sobre um curso de programação PHP para Moodle, incluindo seu objetivo, público-alvo, pré-requisitos, descrição, metodologia, cronograma, programa, avaliação e bibliografia. Ele também discute os principais arquivos e funções do Moodle, como config.php, version.php, file.php e index.php, além de módulos, permissões de usuário, sistema de seleção de idioma e criação de novos módulos.
Este documento fornece uma introdução ao SELinux, discutindo seu objetivo, plano de ensino e módulos introdutórios. Inclui informações sobre pré-requisitos, instalação e configuração do SELinux, além de abordar contas de usuários e regras de segurança.
Este documento fornece informações sobre FTP (File Transfer Protocol), incluindo sua definição, características e clientes FTP. Ele também discute o plano de ensino para FTP, incluindo objetivos, público-alvo, pré-requisitos e avaliação.
Este documento fornece informações sobre um curso sobre Plone, um sistema de gerenciamento de conteúdo open source. Ele inclui seções sobre o objetivo, público-alvo, pré-requisitos, programa, avaliação e bibliografia do curso, além de introduzir o Plone e fornecer instruções sobre instalação, configuração, criação e gerenciamento de conteúdo.
Este documento fornece informações sobre o Drupal, um sistema de gerenciamento de conteúdo open source. Ele discute o que é Drupal, requisitos e instalação, configurações, conceitos básicos e como começar a administrar um site com Drupal. O documento também inclui uma seção sobre gerenciamento de usuários e conteúdo.
Este documento fornece informações sobre o software Jabber, incluindo sua história, o que é, e como configurar contas Jabber nos clientes GAIM e Kopete. Ele também discute o objetivo, público-alvo, pré-requisitos, descrição, metodologia, cronograma, programa, avaliação e bibliografia de um plano de ensino sobre o Jabber.
Este documento apresenta um plano de ensino para o uso do software Nvu, dividido em três lições. A primeira lição aborda a instalação e introdução ao Nvu, além de formatação de texto e listas. A segunda lição trata de imagens, tabelas, links e formulários. A terceira lição fala sobre camadas, templates, estilos e a publicação de sites com Nvu. O documento também fornece informações sobre o CDTC e orientações para alunos de cursos a distância.
Este documento apresenta um curso sobre o software livre Inkscape. Ele inclui informações sobre o objetivo, público-alvo, pré-requisitos, descrição, metodologia, cronograma e avaliação do curso. O curso é dividido em 5 lições que ensinam sobre instalação e ferramentas básicas, seleções e preenchimento, colagem e desenho à mão livre, operações booleanas e criação de texto no Inkscape.
Este documento fornece informações sobre um curso sobre LVM (Logical Volume Manager). Ele inclui detalhes sobre o objetivo, público-alvo, pré-requisitos, descrição, metodologia, cronograma e avaliação do curso. O curso será oferecido online e ensinará sobre como usar o LVM para gerenciar volumes lógicos em sistemas Linux.
Este documento fornece uma introdução ao programa de computação Pascal, incluindo seu objetivo, público-alvo, pré-requisitos, descrição do curso, metodologia e avaliação. Também contém informações sobre licenças de uso e atribuição de autoria.
Este documento fornece informações sobre o MRTG (Multi Router Traffic Grapher), incluindo seu objetivo, público-alvo, pré-requisitos, instalação, configuração e uso. Ele também discute scripts externos e fornece exemplos.
Este documento fornece informações sobre o PPTPd, incluindo seu objetivo, público-alvo, pré-requisitos e plano de ensino. Ele também discute a instalação e configuração do cliente PPTP e do servidor PPTPd.
O documento discute o DotProject, um software de gerenciamento de projetos livre e de código aberto. Ele fornece detalhes sobre a instalação e uso básico do DotProject, incluindo a criação de empresas, projetos, tarefas e outros itens.
1. O documento é uma apostila sobre a linguagem de programação Turbo Pascal. Ele apresenta os principais conceitos da linguagem como tipos de dados, variáveis, estruturas de decisão e repetição.
2. O documento está organizado em 17 capítulos que cobrem tópicos como unidades pré-definidas, arrays unidimensionais e multidimensionais, registros e tipos definidos pelo usuário.
3. Cada capítulo apresenta exemplos de código Pascal para ilustrar um conceito específico da linguagem como a estrutura IF/ELSE,
O documento fornece um guia rápido da linguagem de programação Pascal, descrevendo sua estrutura básica, comentários, declaração de variáveis e constantes, tipos de dados, operadores, estruturas de controle e outros elementos importantes da linguagem.
[1] O documento discute a criação de jogos com o Blender Game Engine (BGE), enfatizando a importância do planejamento prévio através da definição de objetivos claros e da lógica de programação. [2] É apresentada a noção de fluxogramas e algoritmos para representar processos lógicos de forma visual e textual, respectivamente. [3] São introduzidos conceitos básicos como variáveis, tipos de dados, estruturas condicionais e funções para manipulação de dados.
Este documento apresenta uma introdução à linguagem de programação Python, incluindo tópicos como instalação, ambientes de desenvolvimento, modo interativo, tipos de dados, instruções de controle de fluxo, estruturação de código, entrada/saída, biblioteca padrão e aplicações ao cálculo numérico.
Este documento apresenta um curso sobre a linguagem de programação Python. Ele inclui seções sobre conceitos básicos da linguagem, como tipagem forte e orientação a objetos, além de explicar como usar o interpretador Python, módulos, funções built-in como help() e dir(), e tipos de dados como strings e listas.
1. O documento apresenta uma aula introdutória sobre programação em Python.
2. A aula inclui tópicos como "Hello World", variáveis, condicionais, laços, funções, classes e módulos.
3. O documento serve como um manual de referência rápida sobre os principais conceitos e recursos da linguagem Python.
This document provides an overview and introduction to threading in C#. It discusses key threading concepts such as threads versus processes, when to use threads, creating and starting threads, passing data to threads, naming threads, foreground and background threads, thread priority, exception handling, blocking, sleeping and spinning, joining threads, locking for thread safety, wait handles, synchronization contexts, and more advanced topics such as non-blocking synchronization, wait and pulse, suspend and resume, aborting threads, and ending application domains and processes. The document is presented as a multi-part guide to threading in C#, with examples provided throughout to illustrate the concepts.
A função remove acentos de um texto em C# iterando sobre cada caractere, substituindo caracteres acentuados por suas versões sem acento e adicionando os demais caracteres inalterados à string resultante.
O documento descreve como remover caracteres especiais de um TextBox em C# ao clicar em um botão. Ele fornece um método que remove caracteres como vírgula, ponto e vírgula, sinal de adição definidos em uma variável "trim" do texto no TextBox. O método procura esses caracteres e remove um de cada vez até nenhum ser encontrado mais.
Uma função em C# para obter o IP externo fazendo uma requisição para o site MeuIP e retornando a string com o IP encontrada na resposta. A função faz uma requisição HTTP, lê a resposta, procura pelo texto "IP" e extrai a string com o endereço IP.
O documento explica as diferenças entre usar try/finally e using para liberar recursos em C#. Embora ambos liberam recursos, o using faz isso automaticamente, enquanto try/finally requer que o desenvolvedor libere recursos manualmente no bloco finally. O documento fornece um exemplo mostrando como usar try/finally versus using para liberar um objeto TextWriter.
O documento discute sobre:
- Estruturas de controle de fluxo no C# como if/else, for, while e blocos;
- Sintaxe básica para cada estrutura de controle de fluxo;
- Exemplos simples de uso de if/else, for e while.
Este documento discute vários controles de interface do usuário em C# para aplicativos Windows, incluindo:
1) Propriedades como Dock e Anchor para posicionar controles em formulários;
2) Diálogos como OpenFileDialog e SaveFileDialog;
3) Toolbars com imagens;
4) Status bars para mostrar informações de estado.
1) O documento discute sistemas de arquivos e classes utilizadas para manipulação de arquivos em .NET, incluindo FileStream, BinaryReader, StreamReader e StreamWriter.
2) É explicado como ler e escrever arquivos de texto usando StreamReader e StreamWriter, respectivamente.
3) Métodos úteis como Create, Open, Copy e Delete são discutidos para manipulação de arquivos e pastas.
1. O documento introduz os principais conceitos e noções de utilização de um sistema Linux típico, com foco no uso da linha de comandos.
2. O sistema operacional Linux é baseado no kernel Linux e compartilha dos conceitos dos sistemas Unix originais, sendo multitarefa, multiusuário e representando todos os dispositivos como arquivos dentro de uma estrutura de diretórios hierárquica.
3. A linha de comando e os utilitários de sistema permitem executar aplicativos, manipular arquivos e diretórios
O documento apresenta uma introdução sobre shells e shell scripts, abordando: 1) O que são shells e shell scripts; 2) As variáveis de ambiente usadas nos shells; 3) O formato dos arquivos de shell scripts.
Este documento explica como controlar dispositivos externos através da porta paralela do PC usando C#. Ele descreve os modos de operação e endereços da porta paralela, apresenta a biblioteca Inpout32.dll para acessar a porta paralela em sistemas Windows e fornece um exemplo de código C# para enviar dados para LEDs conectados à porta paralela.
O documento discute classes em C#, incluindo: (1) classes são importantes para programação orientada a objetos; (2) namespaces organizam classes em aplicações; (3) modificadores de acesso controlam visibilidade de membros de classe.
This document provides an introduction and overview of a book about learning C#. It discusses the authors and their backgrounds, provides an introduction to C# and .NET, and previews the book's structure and content. The first chapter begins by showing the reader how to set up their environment and write a basic "Hello World" C# program to get started learning the language. It introduces the concept of classes and methods in C# and demonstrates compiling and running a simple program that outputs text.
A festa junina é uma tradicional festividade popular que acontece durante o m...ANDRÉA FERREIRA
Os historiadores apontam que as origens da Festa Junina estão diretamente relacionadas a festividades pagãs realizadas na Europa no solstício de verão, momento em que ocorre a passagem da primavera para o verão.
Conversaremos sobre como trabalhar no Mundo da Arquitetura Técnica e de Solução em Salesforce.
- Suas diferenças
- Seus requisitos
- Suas particularidades
- Quais conhecimentos e aptidões teremos que ter para cada tipo
- Suas tarefas básicas
- Empregabilidade Global
- Caminhos a trilhar no Trailhead
E tiraremos duvidas sobre ambos os tipos de trabalho.
UFCD_6580_Cuidados na saúde a populações mais vulneráveis_índice.pdfManuais Formação
Manual da UFCD_6580_Cuidados na saúde a populações mais vulneráveis_pronto para envio, via email e formato editável.
Email: formacaomanuaisplus@gmail.com
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
Slideshare Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique, EBD NA TV, Revista ano 11, nº 1, Revista Estudo Bíblico Jovens E Adultos, Central Gospel, 2º Trimestre de 2024, Professor, Tema, Os Grandes Temas Do Fim, Comentarista, Pr. Joá Caitano, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique, https://ebdnatv.blogspot.com/
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...Eró Cunha
XIV Concurso de Desenhos Afro/24
TEMA: Racismo Ambiental e Direitos Humanos
PARTICIPANTES/PÚBLICO: Estudantes regularmente matriculados em escolas públicas estaduais, municipais, IEMA e IFMA (Ensino Fundamental, Médio e EJA).
CATEGORIAS: O Concurso de Desenhos Afro acontecerá em 4 categorias:
- CATEGORIA I: Ensino Fundamental I (4º e 5º ano)
- CATEGORIA II: Ensino Fundamental II (do 6º ao 9º ano)
- CATEGORIA III: Ensino Médio (1º, 2º e 3º séries)
- CATEGORIA IV: Estudantes com Deficiência (do Ensino Fundamental e Médio)
Realização: Unidade Regional de Educação de Imperatriz/MA (UREI), através da Coordenação da Educação da Igualdade Racial de Imperatriz (CEIRI) e parceiros
OBJETIVO:
- Realizar a 14ª edição do Concurso e Exposição de Desenhos Afro/24, produzidos por estudantes de escolas públicas de Imperatriz e região tocantina. Os trabalhos deverão ser produzidos a partir de estudo, pesquisas e produção, sob orientação da equipe docente das escolas. As obras devem retratar de forma crítica, criativa e positivada a população negra e os povos originários.
- Intensificar o trabalho com as Leis 10.639/2003 e 11.645/2008, buscando, através das artes visuais, a concretização das práticas pedagógicas antirracistas.
- Instigar o reconhecimento da história, ciência, tecnologia, personalidades e cultura, ressaltando a presença e contribuição da população negra e indígena na reafirmação dos Direitos Humanos, conservação e preservação do Meio Ambiente.
Imperatriz/MA, 15 de fevereiro de 2024.
Produtora Executiva e Coordenadora Geral: Eronilde dos Santos Cunha (Eró Cunha)
7. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos
da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior
públicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA
APOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu-
mentação Livre GNU".
Os 10 mandamentos do aluno de educação online
• 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado é
pré-requisito para a participação nos cursos a distância.
• 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá-
tica é necessário para poder executar as tarefas.
• 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân-
cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores.
• 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.
• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisão
e a sua recuperação de materiais.
• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações e
realizá-las em tempo real.
• 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre.
• 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagens
e descobertas.
• 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente é
ponto - chave na comunicação pela Internet.
• 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual não
controla a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração.
Como participar dos fóruns e Wikipédia
Você tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso:
. O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informações
que sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a
6
8. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação que
interesse ao grupo, favor postá-la aqui.
Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico do
curso. É recomendado que você faça uso do Forum de dúvidas gerais que lhe dá recursos mais
efetivos para esta prática.
. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativo
para solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadas
a todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podem
ajudar.
Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com a
formalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópico
é recomendável ver se a sua pergunta já foi feita por outro participante.
A segunda forma se dá pelas Wikis:
. Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par-
ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
ótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé-
dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em português pelos links:
• Página principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo!
Primeiros Passos
Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:
• Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar;
• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas básicas do mesmo;
• Entrar nas lições seguindo a seqüência descrita no Plano de Ensino;
• Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais.
Perfil do Tutor
Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita as
idéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
7
9. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutor
ou instrutor:
• fornece explicações claras acerca do que ele espera, e do estilo de classificação que irá
utilizar;
• gosta que lhe façam perguntas adicionais;
• identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por-
que motivo a classificação foi ou não foi atribuída’;
• tece comentários completos e construtivos, mas de forma agradável (em contraste com um
reparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, de
ameaça e de nervossismo’)
• dá uma ajuda complementar para encorajar um estudante em dificuldade;
• esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente;
• ajuda o estudante a alcançar os seus objetivos;
• é flexível quando necessário;
• mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
• escreve todas as correções de forma legível e com um nível de pormenorização adequado;
• acima de tudo, devolve os trabalhos rapidamente;
8
11. Capítulo 1
O que é o Java Swing
Java Swing é um kit de ferramentas GUI(Graphic User Interface) destinadas à construção de
interfaces gráficas com o usuário. O Swing amplia o AWT - Absttract Window Toolkit a partir
da versao Java 1.2 oferecendo uma opçao mais compativel e reutilizável, permitindo inclusive
personalizar a aparência dos componentes utilizando recursos como HTML e ícones. Para um
bom desempenho no curso é necessario que o aluno tenha conhecimento básico de linguagens
orientadas a objetos e logicamente da linguagem Java.
10
12. Capítulo 2
Plano de ensino
2.1 Objetivo
Qualificar técnicos e programadores da linguagem de programação Java.
2.2 Público Alvo
Técnicos e Programadores que desejam trabalhar com Interfaces Gráficas.
2.3 Pré-requisitos
Os usuários deverão ser, necessariamente, indicados por empresas públicas e ter conheci-
mento básico acerca da lógica de programação Java.
2.4 Descrição
O curso de Java Swing será realizado na modalidade EAD e utilizará a plataforma Moodle
como ferramenta de aprendizagem. Ele é composto de um módulo de aprendizado e um módulo
de avaliação avaliação que serão dados na primeira semana. O material didático estará disponível
on-line de acordo com as datas pré-estabelecidas no calendário. A versão utilizada para o Java
Swing pode ser qualquer versão Java a partir da 1.2.
Todo o material está no formato de lições, e estará disponível ao longo do curso. As lições
poderão ser acessadas quantas vezes forem necessárias. Aconselhamos a leitura de "Ambien-
tação do Moodle", para que você conheça o produto de Ensino a Distância, evitando dificuldades
advindas do "desconhecimento"sobre o mesmo.
Ao final de cada semana do curso será disponibilizada a prova referente ao módulo estudado
anteriormente que também conterá perguntas sobre os textos indicados. Utilize o material de
cada semana e os exemplos disponibilizados para se preparar para prova.
Os instrutores estarão a sua disposição ao longo de todo curso. Qualquer dúvida deve ser
disponibilizada no fórum ou enviada por e-mail. Diariamente os monitores darão respostas e
esclarecimentos.
11
13. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
2.5 Metodologia
O curso está dividido da seguinte maneira:
2.6 Cronograma
• Lição 1 - Visão Geral
• Lição 2 - Containers e Componentes
• Lição 3 - Gerenciadores de Layout
• Lição 4 - Manipulando ações básicas
As lições contém o contéudo principal. Elas poderão ser acessadas quantas vezes forem neces-
sárias, desde que esteja dentro da semana programada. Ao final de uma lição, você receberá
uma nota de acordo com o seu desempenho. Responda com atenção às perguntas de cada lição,
pois elas serão consideradas na sua nota final. Caso sua nota numa determinada lição for menor
do que 6.0, sugerimos que você faça novamente esta lição.
Ao final do curso será disponibilizada a avaliação referente ao curso. Tanto as notas das lições
quanto a da avaliação serão consideradas para a nota final. Todos os módulos ficarão visíveis
para que possam ser consultados durante a avaliação final.
Aconselhamos a leitura da "Ambientação do Moodle"para que você conheça a plataforma de
Ensino a Distância, evitando dificuldades advindas do "desconhecimento"sobre a mesma.
Os instrutores estarão a sua disposição ao longo de todo curso. Qualquer dúvida deverá ser
enviada no fórum. Diariamente os monitores darão respostas e esclarecimentos.
2.7 Programa
O curso de Java Swing oferecerá o seguinte conteúdo:
• Visão Geral
• Containers e Componentes
• Gerenciadores de Layout
• Manipulando ações básicas
2.8 Avaliação
Toda a avaliação será feita on-line.
Aspectos a serem considerados na avaliação:
• Iniciativa e autonomia no processo de aprendizagem e de produção de conhecimento;
• Capacidade de pesquisa e abordagem criativa na solução dos problemas apresentados.
Instrumentos de avaliação:
12
14. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• Participação ativa nas atividades programadas.
• Avaliação ao final do curso.
• O participante fará várias avaliações referente ao conteúdo do curso. Para a aprovação e
obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordo
com a fórmula abaixo:
• Nota Final = ((ML x 7) + (AF x 3)) / 10 = Média aritmética das lições
• AF = Avaliações
2.9 Bibliografia
• Site official: http://java.sun.com
• Guia em Português: http://www.javanoroeste.com.br/2006/tutoriais/swing_basico.html
13
15. Capítulo 3
Lição 1 - Visão Geral
Nesta lição será apresentada a API Java Swing.
3.1 Introdução
Introdução Swing é uma das 5 APIs que formam a JFC que é abreviatura de Java Foun-
dation Classes, que abrangem um grupo das características para construir Interfaces Gráficas
com o Usuários (GUIs) e adição de ricas funcionalidades e interatividade com aplicações Java.O
Swing veio como uma extensão do AWT(Abstract Window Toolkit) que dependia de componen-
tes específicos de cada plataforma , o que não acontece com Swing pois este contém apenas
códigos java , o que permite rodar em qualquer plataforma(Run Everywhere), entretanto estes
componentes são sensívelmente mais lentos que componentes nativos de qualquer plataforma.
Apesar da criaçao da Swing o AWT ainda é suportado. Para um bom rendimento neste curso o
aluno deve ter um conhecimento básico em Java e ser capaz de criar e compilar um aplicativo
básico nesta linguagem.
3.2 API Swing
A API Swing é poderosa, flexível e imensa, que possui pacotes públicos, cada um com sua
própria finalidade distinta:
javax.swing
Pacote swing de alto nível, consiste primariamente de componentes, adaptadores, modelos
padrão de componentes e interface.
javax.swing.border
O pacote border declara a interface Border e classes, que define especifico estilo de borda.
javax.swing.colorchooser
O pacote colorchooser contem suporte de para classes para componentes color chooser .
javax.swing.event
O pacote de event é para eventos e listeners específicos Swing. Adiciona ao java.awt.event
types, componentes Swing podem gerar seus próprios tipos de eventos.
javax.swing.filechooser
O pacote filechooser contem classes de suporte para componentes de seleção de arquivos.
javax.swing.plaf
14
16. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Plug-in look-and-feel (PLAF) pacote que contém Interfaces com usuário(UI) classes (delega-
das) que implementam diferentes look-and-feel aspects para componentes Swing. Há também
alguns pacotes de PLAF sob a hierarquia.
javax.swing.table
O pacote table contem suporte para interfaces e e classes para o componente Swing table.
javax.swing.text
O pacote text contem classes de suporte para o framework do Swing de documento.
javax.swing.text.html
O pacote text.html contem classes de suporte para HTML versão 3.2 interpretador e analisa-
dor.
javax.swing.text.rtf
O pacote text.rtf contem classes de suporte para um básico interpretados Rich Text Format
(RTF).
javax.swing.tree
O pacote tree contem interface e classes para o componente tree do Swing.
javax.swing.undo
O pacote undo provê classes de suporte para implementar a capacidade de fazer/desfazer
nos GUI.
javax.accessibility
O pacote de acessibilidade da JFC é incluido nas classes Swing. Entretanto, seu uso não
será discutido aqui.
3.3 Componentes Swing
O widget é um termo sem tradução que designa componentes de interface gráfica com o
usuário (GUI). Qualquer item de uma interface gráfica é chamada de widget, por exemplo: janelas,
botões, menus ítens de menus, ícones, barras de rolagem, etc.
O pacote de acessibilidade da JFC é incluído nas classes Swing. Entretanto, seu uso não
será discutido aqui.
15
17. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Figura1 -Hierarquia de componentes similares ao AWT.
Figura 2 - Hierarquia de componentes novos do Swing.
16
18. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
3.4 Galeria de componentes
17
19. Capítulo 4
Lição 2 - Containers e Componentes
Nesta lição serão apresentados os principais elementos para criação de interfaces com Swing.
4.1 Containers
Quase todas as interfaces gráficas são compostas de uma janela principal ou de alto-nível,onde
são montados os outros componentes. Na Swing essas janelas são geralmente uma instancia
das classes JFrame ou JWindow. A diferênça entre essas duas classes esta na simplicidade,
JWindow não tem a barra de título e não coloca botões na barra de tarefas, portanto utilizaremos
a JFrame.
JFrame é a versão Swing do Frame(AWT) , porém ela é descendente direta da classe Frame, por
isso ao adicionarmos componentes ao JFrame teremos que utilizar o JPanel para gerenciar estes
componentes .
Características da JFrame: Janela com título , bordas, barra de menu (opcional) e componentes
especificados pelo usuário. Esta pode ser movida , ter o tamanho ajustado e permite a adição de
ícones. Veremos a seguir um exemplo de um JFrame. Código:
import javax.swing.*;
public class ExemploJFrame {
private JFrame f;
public ExemploJFrame(){
f = new JFrame("Exemplo de JFrame");
}
public void CriaFrame(){
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300,300);
f.setVisible(true);
}
public static void main(String args[]){
ExemploJFrame janela = new ExemploJFrame();
janela.CriaFrame();
18
20. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
}
}
Copie o código e salve em um arquivo chamado "ExemploJFrame.java" compile com o co-
mando javac "nome_do_arquivo.java" (sem aspas) e rode com o comando java "nome_do_arquivo"
(sem aspas e sem o .java). o resultado esperado é este:
Figura 3 - Exemplo JFrame.
Vamos ver o código: para usar os elementos do java swing temos que utilizar o "import ja-
vax.swing.*", em seguida declaramos a classe ExemploJFrame e instanciamos um JFrame cha-
mado de f com o parâmetro que define o título da janela("Exemplo JFrame"), em seguida temos
o método construtor da classe , o CriaFrame(), neste método utilizamos 3 setings importantes .
O primeiro será utilizado em todos os exemplos do curso e serve para encerrar o programa, ou a
interface, ao clicarmos no botão fechar da janela. Sem esta linha nada aconteceria ao tentarmos
fechar a janela, esta só fecharia ao encerrarmos o programa. O segundo set define o tamanho
da tela, neste caso 300 x 300 pixels, mais à frente no curso veremos que em alguns casos não
será necessário definir o tamanho da tela, vamos utilizar gerênciadores de layout que ajustam
a tela de forma que todos os componentes estejam visíveis. Finalmente o último "set"mostra a
janela na tela. Em Java, a classe Container é a classe abstrata que define as funcionalidades
básicas associadas a um container, tais como adicionar e remover componentes, o que é possível
através dos métodos add() e remove(), respectivamente. É possível também estabelecer qual a
estratégia de disposição de componentes no container, ou seja, qual o método de gerência de
layout, através do método setLayout(). Estudaremos layouts na próxima lição.
Agora vamos adicionar um botão ao exemplo anterior, para isso vamos adicionar um botão
JButton ao JPanel e o JPanel ao JFrame . Veja o código:
import javax.swing.*;
public class Exemplo2fb {
public JFrame f;
public JButton botao;
public JPanel p;
19
21. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
public Exemplo2fb(){
f = new JFrame("Exemplo2 frame com botao ");
botao = new JButton("pressione");
p = new JPanel();
}
public void CriaFrame(){
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300,300); // tamanho do frame
p.add(botao); // adiciona botao ao JPanel
f.add(p); // adiciona o painel com botão ao frame
f.setVisible(true);
}
public static void main(String args[]){
Exemplo2fb janela = new Exemplo2fb();
janela.CriaFrame();
}
}
Lembrando que para salvar o arquivo devemos utilizar o mesmo nome da classe ,ou seja, neste
caso seria "Exemplo2fb.java". O resultado do código é:
Figura 4 - JFrame com JPanel e botão.
Agora o aluno deve modificar o código e adicionar o botão diretamente ao frame, retirando as
linhas de código relativas ao JPanel. Ao fazer isto podemos verificar que o botão ocupou todo o
espaço da janela. Em nenhum momento foi definido o tamanho do botão , então porque ele se
comporta de forma diferente quando é adicionado ao JFrame e ao JPanel? A resposta para esta
pergunta pode ser encontrada na lição 3 - Gerenciadores de Layout.
20
22. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Figura 5 - JFrame com Botão.
Podemos ver os containers como o cimento das aplicações em Swing eles agrupam os com-
ponentes que seriam os tijolos , ou seja para a maioria dos programas é necessario utilizar um
container onde serão inseridos os tipos de objetos desejados ou componentes, botões , campos
de texto , etc. Por definição Containers são componentes que podem conter outros componen-
tes. Como exemplo de containers temos JWindow , JFrame e JPanel, porém o JPanel deve ser
adicionado a um dos dois anteriores.
4.2 Componentes
Os componentes são como tijolos nas aplicaçoes Swing, estes podem ser agrupados em
containers para construir uma interface gráfica. Temos uma infinidade de componentes e a mai-
oria deles pode ser configurada de diversas formas o que oferece uma grande flexibilidade no
desenvolvimento de interfaces gráficas.
Neste curso veremos apenas os componentes mais básicos porém conhecendo estes será
muito mais fácil utilizar qualquer outro. Os principais componentes são :
JLabel - JLabel é um componente utilizado principalmente para mostrar textos e nomear
outros componentes. Se comparado ao Label do AWT o JLabel tem 3 vantagens importantes a
primeira é que este pode ser utilizado também para mostrar imagens, a segunda é a possibilidade
de usar bordas delimitando campos em uma janela. E a terceira é a possibilidade de utilizar
HTML para formatar o label, isto é feito adicionando <html> ao início da string do label, assim
ele é interpretado como HTML possibilitando mudar fontes, cores dentre outros efeitos. O JLabel
pode ter fonte, tamanho e cor configurados porém se for utilizado o HTML os controles padrões
do JLabel serão ignorados.
Vejamos alguns exemplos:
import javax.swing.*;
public class ExemploJLabel {
public JFrame f;
public JLabel texto;
public JLabel texto2;
public JPanel p;
21
23. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
public ExemploJLabel(){
f = new JFrame("Exemplo4 JLabel ");
texto = new JLabel("Este texto é um JLabel");
texto2 = new JLabel("ESTE TEXTO TAMBÉM É UM JLABEL");
p = new JPanel();
}
public void CriaFrame(){
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300,300);
p.add(texto);
p.add(texto2);
f.add(p);
f.setVisible(true);
}
public static void main(String args[]){
ExemploJLabel janela = new ExemploJLabel();
janela.CriaFrame();
}
}
Resultado:
Figura 6 - ExemploJLabel
Agora usando HTML, veremos icones mais a frente em JButons.
import javax.swing.*;
import java.awt.*;
public class ExemploJLabel2{
public JFrame f;
public JLabel label;
22
24. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
public JLabel label2;
public JPanel p;
public ExemploJLabel2(){
f = new JFrame("Exemplo5 JLabel ");
label = new JLabel("<html><FONT COLOR=RED><B>JLabel colorido com HTML</B></FO
label.setBorder(BorderFactory.createTitledBorder("JLabel com borda"));
label2 = new JLabel("JLabel comum ");
p = new JPanel();
}
public void CriaFrame(){
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300,300);
p.setLayout(new BorderLayout());
p.add(label, BorderLayout.NORTH);
p.add(label2, BorderLayout.CENTER);
f.add(p);
f.setVisible(true);
}
public static void main(String args[]){
ExemploJLabel2 janela = new ExemploJLabel2();
janela.CriaFrame();
}
}
Resultado:
23
25. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Figura 7 - Exemplo JLabel com HTML
4.3 Componentes - Parte II
JButton - Botão que pode conter um texto ou um icone, suas funcionalidades são controla-
das pelo actionlistener, existem muitas fucionalidades que podem ser atribuidas a um botão, neste
curso abordaremos apenas principios basicos , assim fica a cargo do aluno pesquisar uma funci-
onalidade especifica na documentação da Sun ou nos varios sites sobre Swing na Internet.Uma
grande vantagem do swing é que você pode redimensionar e arrastar a janela sem configurar
nada e os componentes são reorganizados também de acordo com o layout escolhido.
Exemplo JButton com imagem:
import java.awt.*;
import javax.swing.*;
public class Botoes extends JFrame {
public static void main(String[] args) {
new Botoes();
}
public Botoes() {
super("Exemplo JButton");
JFrame frame= new JFrame();
Container content = getContentPane();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
content.setLayout(new FlowLayout());
JButton botao1 = new JButton("Botao normal");
content.add(botao1);
ImageIcon cdtc = new ImageIcon("f1.png");
JButton botao2 = new JButton(cdtc);
botao2.setBackground(Color.yellow); // Define a cor de fundo do botão
content.add(botao2);
pack(); // monta a janela ajustando o tamanho de acordo com os componentes
setVisible(true);
}
}
24
26. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Resultado:
Figura 8 - Exemplo JButton
JTextField - JtextField é uma área para texto que pode ser muito útil para formulários. Este
componente geralmente é usado combinado com o JLabel que adciona um nome ao campo.
JRadioButton - similar ao JButton porém esse é usado para marcar 1 ou mais opções dentre
as disponíveis.
Exemplo JTextField e JRadioButton :
import java.awt.*;
import javax.swing.*;
public class Textfield extends JFrame {
public static void main(String[] args) {
new Textfield();
}
public Textfield() {
super("Exemplo JTextField");
JFrame frame= new JFrame(); // instancia JFrame
Container content = getContentPane(); // Cria o container
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//finaliza programa ao fechar
setSize(500,120); // determina o tamanho da janela
content.setLayout(new BorderLayout());// define o layout do container
JPanel painel1 = new JPanel(); // cria o painel que conterá o label nome e
//o campo texto
FlowLayout layout = new FlowLayout();//instancia o flowlayout para alinhar os
//componentes
layout.setAlignment(FlowLayout.LEFT);// define alinhamento à esquerda
painel1.setLayout(layout); //define o layout do painel1 flowlayout à esquerda
JPanel painel2 = new JPanel();//cria o painel que conterá o label endereço
//e o texto
painel2.setLayout(layout); //define o layout do painel3 flowlayout à esquerda
JPanel painel3 = new JPanel(); //painel3 contem o label sexo e os botoes
//do tipo radio
painel3.setLayout(layout);
JLabel nome = new JLabel("Nome");//cria um label
painel1.add(nome); //adiciona o label ao painel 1
JTextField nomef = new JTextField(10);
painel1.add(nomef);
25
27. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
JLabel endereco = new JLabel("Endereço");
painel2.add(endereco);
JTextField endf = new JTextField(30);
painel2.add(endf);
JLabel sexo = new JLabel("Sexo:");
painel3.add(sexo);
JRadioButton masculino = new JRadioButton("Masculino");
painel3.add(masculino);
JRadioButton fem = new JRadioButton("Feminino");
painel3.add(fem);
content.add(painel1, BorderLayout.NORTH); // define o painel1 como
//parte norte do container
content.add(painel2, BorderLayout.CENTER);// define o painel2 como
//parte centro do container
content.add(painel3, BorderLayout.SOUTH); // define o painel3 como
//parte sul do container
setVisible(true);
}
}
Resultado:
Figura 9 - JTextField com JRadioButton
JPasswordField - este é o campo utilizado para senhas, sua utilização é idêntica ao do JText-
Field e o texto digitado aparece como "*"(o caractere que aparece no JPasswordField também
pode ser configurado).
JPanel - é container intermediário pois deve ser adicionado a um outro container(JFrame ou
JWindow). É a forma mais simples de se construir uma interface, basta instancia-lo adicionar os
componentes a ele e então adiconar o JPanel a algum container.No exemplo acima utilizamos
3 instâncias do JPanel e adicionamos a cada uma um JLabel e um Componente e em seguida
adicionamos cada JPanel a uma área do JFrame.
Uma das razões de se utilizar o JPanel é que Componentes em um JPanel dentro do frame
não são reajustados, ou seja, podemos aumentar a janela e o tamanho dos componentes perma-
necerá o mesmo, o que observamos que não acontece se adicionarmos direto ao JFrame(como
visto na primeira página desta lição) .
26
28. Capítulo 5
Lição 3 - Gerenciadores de Layout
Nesta lição serão apresentados alguns exemplos dos responsáveis pela organização de ele-
mentos em uma interface.
5.1 Gerenciadores de Layout
Os gerenciadores de Layout são responsáveis por organizar os componentes em um con-
tainer não só ao adicionarmos mas também quando redimensionamos as janelas, é possível
usar diversos tipos de gerenciadores em uma mesma interface assim como é possivel "desligar"o
gerenciador de layout para um dado container e definir manualmente a posição , o tamanho e
outras configurações de cada componente adicionando ao container. Cada tipo de container tem
um layout padrão porém frequentemente temos que mudar o layout do container para obter a
disposição de componentes desejada. Veremos agora as principais características de alguns
gerenciadores de layout.
FlowLayout
O gerenciador de layout de ?fluxo? apenas posiciona os componentes em fila, um após o
outro, cada qual com suas dimensões mínimas. O FlowLayout imita o fluxo de textos, e pode
alinhar os componentes à direita, à esquerda, ou centraliza-los dentro do container. O uso mais
comum deste layout é para preencher uma linha com maior quantidade possível de componentes,
por exemplo em barras de ferramentas ou de status.
Figura 10 - Exemplo FlowLayout
Figura 11 - Exemplo FlowLayout redimensionado
27
29. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
BorderLayout
O BorderLayout posiciona os componentes nas ?bordas? do container, deixando a maior
parte de sua área disponível para o componente inserido no centro. Cada borda é identificado
por um ponto cardeal(NORTH,SOUTH, EAST, WEST). Apenas um componente será visível em
cada borda, expandindo-se na altura ou largura para ocupar toda a borda do container, porém
assumindo o valor mínimo na outra dimensão. O BorderLayout é o layout padrão do JFrame
,por isso , na lição 2 quando adicionamos um botão ao JFrame ele automaticamente ocupou
a posição central, como os outros pontos (norte, sul, etc.) não foram utilizados o botão ocupa
todo espaço da janela mesmo que ela seja redimensionada. Os pontos norte e sul podem ser
reajustados horizontalmente. Os pontos leste e oeste podem ser reajustados verticalmente, e o
central em todas as direções ( Obs: Experimente adicionar um botão a cada um deles e reajustar
a janela). Note que esta disposição reflete o padrão na maioria das aplicações desktop, como
processadores de texto ou programas de desenho: uma barra de ferramentas ao norte, uma barra
de status ao sul, opcionalmente outras barras de ferramentas ao leste e oeste, e uma área de
edição ao centro.
Código:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class DemoBorderLayout {
public static boolean RIGHT_TO_LEFT = false;
public static void addComponentsToPane(Container pane) {
if (!(pane.getLayout() instanceof BorderLayout)) {
pane.add(new JLabel("O Container nÿo usa BorderLayout!"));
return;
}
if (RIGHT_TO_LEFT) {
pane.setComponentOrientation(
java.awt.ComponentOrientation.RIGHT_TO_LEFT);
}
JButton button = new JButton("Boatao 1 (PAGINA_INICIAR)");
pane.add(button, BorderLayout.PAGE_START);
//Faz a centralização de um grande componente, deste que
//tipico do uso de BorderLayout.
button = new JButton("Boatao 2 (CENTRO)");
button.setPreferredSize(new Dimension(200, 100));
pane.add(button, BorderLayout.CENTER);
button = new JButton("Boatao 3 (INICIAR_LINHA)");
28
30. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
pane.add(button, BorderLayout.LINE_START);
button = new JButton("NOME-LONGO Boatao 4 (FIM_PAGINA)");
pane.add(button, BorderLayout.PAGE_END);
button = new JButton("5 (FIM_LINHA)");
pane.add(button, BorderLayout.LINE_END);
}
/**
* Cria um GUI e o exibe. Para thread safety,
* este metodo podera invocar para uma thread
* de disparo de evento(event-dispatching thread).
*/
private static void createAndShowGUI() {
//Faz com que tenha uma decoracao de janela.
JFrame.setDefaultLookAndFeelDecorated(true);
//Cria e organiza a janela.
JFrame frame = new JFrame("DemoBorderLayout");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Organiza o conteudo no painel.
addComponentsToPane(frame.getContentPane());
//Uso do conteudo do painel por padrão o BorderLayout.
//Não é necessario definir
//setLayout(new BorderLayout());
//Exibe janela.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Agenda um trabalho para o event-dispatching thread:
//cria e exibe uma aplicacao GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
Resultado:
29
31. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Figura 12 - Exemplo BorderLayout
GridLayout
O GridLayout organiza os componentes em uma ?grade? ou tabela com número de linhas e
colunas pré-fixado no momento da sua criação. Todas as células possuem o mesmo tamanho, e
são expandidas igualmente para ocupar a área total disponível no container. Caso haja menos
componentes do que células, o espaço das células vázias é distribuído entre os componentes;
mas podem ficar células vázias nas últimas colunas da última linha. O GridLayout é adequado
quando se deseja que um grupo de componentes (ex.? Um grupo de botões) tenha dimensões
uniformes, como na caixa de ferramentas de um programa de desenho ou par de botões ?OK? e
?Cancelar? de um diálogo.
Código:
import java.awt.*;
import javax.swing.*;
public class DemoGridLayout {
public final static boolean RIGHT_TO_LEFT = false;
public static void addComponentsToPane(Container pane) {
if (RIGHT_TO_LEFT) {
pane.setComponentOrientation(
ComponentOrientation.RIGHT_TO_LEFT);
}
pane.setLayout(new GridLayout(0,2));
pane.add(new JButton("Botoao 1"));
pane.add(new JButton("Botoao 2"));
pane.add(new JButton("Botoao 3"));
pane.add(new JButton("Botao Nome-Longo 4"));
pane.add(new JButton("5"));
}
/**
* Cria um GUI e o exibe. Para thread safety,
* este metodo podera invocar para uma thread
* de disparo de evento(event-dispatching thread).
*/
private static void createAndShowGUI() {
//Faz com que tenha uma decoracao de janela.
30
32. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
JFrame.setDefaultLookAndFeelDecorated(true);
//Cria e organiza a janela.
JFrame frame = new JFrame("DemoGridLayout");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Organiza o conteudo no painel.
addComponentsToPane(frame.getContentPane());
//Exibe janela.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Agenda um trabalho para o event-dispatching thread:
//cria e exibe uma aplicacao GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
Resultado:
Figura 13 - Exemplo GridLayout
GridBagLayout
Com nome estranho(?saco de grades?), o GridBagLayout é o mais poderoso e o mais flexível
dos gerenciadores fornecidos com o J2EE. Ele imita em linhas gerais o funcionamento de uma
tabela HTML, em que um componente pode ocupar várias células, ou seja, se estender por
várias colunas e linhas. Os componentes podem ser expandidos para ocupar toda a área das
suas células, ou serem alinhados em qualquer posição do conjunto de células. Linhas e colunas
assumem as dimensões do maior componente, mas é necessário que tenham todas o mesmo
tamanho. E algumas células podem ser configuradas para ocuparem toda a área disponível no
container.
Este layout tem como base a utilização de um GridBagConstraints para cada componente
inserido. É este objeto que proporcionará a liberdade que queremos com o layout. A GridBag-
Constraints é uma classe que não possui métodos, ela servirá simplesmente para armazenar as
informações para cada componente adicionado. Vamos dar uma olhada nas propriedades da
classe:
31
33. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
anchor: Essa propriedade é utilizada somente quando o tamanho do componente é menor
que a área que lhe foi concedida. Normalmente, queremos que nosso componente ocupe toda a
área disponível, mas em casos especiais, não podemos redimensionar os componentes. Sendo
assim, o layout precisa saber em que posição da célula deixará o componente. Os valores para
esse campo são de dois tipos: Absolutos (CENTER, NORTH, NORTHEAST, EAST, SOUTHE-
AST, SOUTH, SOUTHWEST, WEST, e NORTHWEST) e Relativos (PAGE_START, PAGE_END,
LINE_START, LINE_END, FIRST_LINE_START, FIRST_LINE_END, LAST_LINE_START and
LAST_LINE_END). O valor padrão é CENTER.
fill: Determina como redimensionar o componente. Valores possíveis para esta propriedade
são: NONE: Não redimensiona o componente HORIZONTAL: Redimensiona horizontalmente,
fazendo com que o mesmo ocupe toda a área horizontal na célula VERTICAL: Redimensiona ver-
ticalmente, fazendo com que o mesmo ocupe toda a área vertical na célula BOTH: Redimensiona
para ambas as direções. Valor padrão é NONE
gridx e gridy
Especificam a posição X,Y para adicionar o componente. Não é necessário alterar seus valo-
res, pois seu valor padrão é a constante RELATIVE e portanto o layout adicionará após o último
componente que foi colocado. - gridx: Permite especificar qual a posição absoluta horizontal-
mente que o componente será adicionado. - gridy: Permite especificar qual a posição absoluta
verticalmente que o componente será adicionado.
gridheight e gridwidth
Especificam o tamanho do componente baseado em células. É com essa propriedade que
você indicará que um componente seu ocupará duas células, ou ocupurá tantas quanto forem ne-
cessárias para ir até o final da tela. Lembrem-se é células e não pixels Nestes valores podem ser
utilizadas duas constantes: REMAINDER e RELATIVE. REMAINER fará com que o componente
se estique até a última célula. Já o RELATIVE fará com que o componente ocupe todas as casas
com excessão da última. - gridheight: Especifica o número de células que o componente ocupará
verticalmente. Valor padrão é 1. - gridwidth: Especifica o número de células que o componente
ocupará horizontalmente. Valor padrão é 1.
insets
Indica as distãncias entre os componentes do layout. Um Insets possui valores para as 4
direções, cima, baixo, direita e esquerda. Permitindo com isso muita flexibilidade no gerenciador.
Valor padrão é new Insets(0, 0, 0, 0)
weight
Essas propriedades especificam um percentual de crescimento da célula, não do componente,
quando a mesma precisa ser redimensionada. É dito isso, pois se o componente não pode se
redimensionar, pois a propriedade fill do constraint afirma isso, o componente não vai sofrer
as alterações, mas a célula irá aumentar. Com este layout é possível informar que uma célula
redimensionará 75% e o outra 25%, portanto o primeiro componente receberá 3 vezes mais
tamanho do que o segundo.
O valor padrão é 0 e os valores percentuais são dados em casas decimais, por exemplo: 0.03
é igual a 3%, 1.00 é igual a 100% e por aí vai. - weightx: Peso em x. Especifica um peso no
redimensionamento. Este peso será utilizado para um cálculo que o layout faz para determinar
quais as células irão redimensionar horizontalmente, quais não irão, e quais aumentarão mais
que os outros. - weighty: Peso em y. Especifica um peso no redimensionamento. Este peso será
utilizado para um cálculo que o layout faz para determinar quais as células irão redimensionar
verticalmente, quais não irão, e quais aumentarão mais que os outros.
ipadx e ipady
Determina um adicional nas bordas internas do componenete. Essa propriedade modifica o
32
34. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
tamanho mínimo de cada componente. O tamanho mínimo será o ipad + o valor mínimo do com-
ponente. - ipadx: Valor para ser adicionado horizontalmente. - ipady: Valor para ser adicionado
verticalmente.
Podemos afirmar com segurança que qualquer disposição de componentes pode ser configu-
rada em um GridBagLayout. Por outro lado, a quantidade de constraints(propriedades e restrições
de layout) possível para cada componente também deu a este gerenciador a fama de ser difícil
de programar.
Código:
import java.awt.*;
import javax.swing.JButton;
import javax.swing.JFrame;
public class DemoGridBagLayout {
final static boolean shouldFill = true;
final static boolean shouldWeightX = true;
final static boolean RIGHT_TO_LEFT = false;
public static void addComponentsToPane(Container pane) {
if (RIGHT_TO_LEFT) {
pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
}
JButton button;
pane.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
if (shouldFill) {
//altura natural, largura maxima.
c.fill = GridBagConstraints.HORIZONTAL;
}
button = new JButton("Botao 1");
if (shouldWeightX) {
c.weightx = 0.5;
}
c.gridx = 0;
c.gridy = 0;
pane.add(button, c);
button = new JButton("Botao 2");
c.gridx = 1;
c.gridy = 0;
pane.add(button, c);
button = new JButton("Botao 3");
c.gridx = 2;
c.gridy = 0;
pane.add(button, c);
33
35. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
button = new JButton("Botao 4 - Nome-Longo");
c.ipady = 40; //faz o componente no alto.
c.weightx = 0.0;
c.gridwidth = 3;
c.gridx = 0;
c.gridy = 1;
pane.add(button, c);
button = new JButton("5");
c.ipady = 0; //esvazia por padrao
c.weighty = 1.0; //requisita um espaco vertical extra.
c.anchor = GridBagConstraints.PAGE_END; //espaco em baixo.
c.insets = new Insets(10,0,0,0); //top padding
c.gridx = 1; //alinhamento do botao 2.
c.gridwidth = 2; //2 colunas largas.
c.gridy = 2; //terceira linha.
pane.add(button, c);
}
/**
* Cria um GUI e o exibe. Para thread safety,
* este metodo podera invocar para uma thread
* de disparo de evento(event-dispatching thread).
*/
private static void createAndShowGUI() {
//Faz com que tenha uma decoracao de janela.
JFrame.setDefaultLookAndFeelDecorated(true);
//Cria e organiza a janela.
JFrame frame = new JFrame("DemoGridBagLayout");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Organiza o conteudo no painel.
addComponentsToPane(frame.getContentPane());
//Exibe janela.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Agenda um trabalho para o event-dispatching thread:
//cria e exibe uma aplicacao GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
34
36. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
}
});
}
}
Resultado:
Figura 14 - Exemplo GridBagLayout
35
37. Capítulo 6
Lição 4 - Manipulando Ações Básicas
Nesta lição serão apresentados métodos para executar ações em uma interface.
6.1 Manipulando Ações Básicas
Agora que você já aprendeu como colocar componentes na tela, você vai saber como res-
ponder às ações do usuário com os componentes. O principal mecanismo para isso é o padrão
Observer, implementado em Swing com os "event listeners"(ou observadores de eventos). Os
componentes emitem notificações sobre eventos, e o event listener recebe essas notificações.
Por exemplo, para executar um código quando o usuário aperta um botão, você deve definir um
listener para o evento "pressionar botão"e ligar o evento a esse botão.
Código:
import java.awt .*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing .*;
public class MainFrame extends JFrame{
public static void main(String[] args) {
new MainFrame();
}
public MainFrame (){
super ( "Exemplo ActionListener");
setSize (300,300);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
Container content = getContentPane ();
content.setLayout (new BorderLayout ());
36
38. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
JPanel painel = new JPanel (new FlowLayout ());
JButton botao1 = new JButton ( "Botao 1");
painel.add (botao1);
botao1.addActionListener (new MyButtonListener (this));
painel.add (new JButton ( "Botao 2"));
painel.add (new JButton ( "Botao 3"));
content.add (painel, BorderLayout.SOUTH);
content.add (new JScrollPane (new JTextArea ()), BorderLayout.CENTER);
painel = new JPanel (new FlowLayout ());
painel.add (new JLabel ( "Digite seu nome"));
painel.add (new JTextField (10));
String opcoes[] = new String[]{ "Opção 1", "Opção 2", "Opção 3"};
painel.add(new JComboBox (opcoes));
content.add (painel, BorderLayout.NORTH);
pack();
setVisible(true);
}
private class MyButtonListener implements ActionListener{
private JFrame parentComponent;
MyButtonListener (JFrame parentComponent){
this.parentComponent = parentComponent;
}
public void actionPerformed (ActionEvent e){
JOptionPane.showMessageDialog (parentComponent, "BOTÃO 1 PRESSIONADO!");
37
39. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
}
}
}
Figura 15 - Exemplo ActionListener
Figura 16 - Exemplo botão pressionado
Neste exemplo, nós criamos um ActionListener e ligamos apenas ao botão1. A interface do
ActionListener tem apenas um método: actionPerformed. Esse método é chamado quando uma
ação ocorre. O evento ActionEvent é o tipo mais comum em Swing - a maioria dos componen-
tes produzem um ActionEvent. Componentes podem também produzir outros eventos - como a
mudança da seleção atual, texto ou tamanho. Por enquanto, o nosso foco é no ActionEvent. Em
todo o caso, procure ,em uma IDE que exibe métodos de uma classe, por métodos que come-
çam com add e terminam com Listener (por exemplo, addFocusListener) para ver o que tipos de
event/Listener um componente suporta.
Mais uma coisa interessante neste exemplo é a utilização da classe JOptionPane. Essa classe
contém muitos métodos úteis que ajudam na exibição padronizada de diálogos entradas e diálo-
gos de mensagem.
O exemplo acima, não está escrito no estilo usual para Swing. Já que a única fução do
listener é chamar um método, ele é frequentemente escrito como uma classe interna anonima
(inner class).
Código:
Botao1.addActionListener (
new ActionListener ()
{
Público void actionPerformed (ActionEvent e)
{
38
40. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
JOptionPane.showMessageDialog(MainFrame.this,"BOTÃOPRESSIONADO!");
}
});
Podemos observar que existem também outras formas de receber notificações eventos e,em
seguida, instalar um listener para cada objeto na tela. Por exemplo, o código abaixo instala um
listener global para pressionar a tecla F1:
KeyStroke ks=KeyStroke.getKeyStroke(KeyEvent.VK_F1,0);
topComponent.getInputMap ( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ks,"HELP");
topComponent.getActionMap().put("HELP",
new AbstractAction()
{
public void actionPerformed(ActionEvent evt)
{
// coloque um diálogo ou mensagem aqui
}
});
Este curso abordou apenas alguns tópicos do Java Swing já que qualquer abordagem pro-
funda de qualquer tópico da linguagem Java se torna muito extensa.
39