Javascript do .HTML para o .JAR

Propaganda
Jogo Rápido
coluna
Javascript do .HTML
para o .JAR
Atualmente, em projetos Web, tem se tornado comum a criação de
frameworks Javascript. Estes frameworks trazem um grande ganho de
tempo de desenvolvimento diminuindo o retrabalho de criar funções
que sempre são utilizadas (validar campos, validar formato, aplicar máscara em campo etc.). Porém, é chato sempre ter que copiar os arquivos
Javascript, pois geralmente não se sabe qual é a última versão, qual está
mais atualizada. Estes problemas atrapalham e tornam lenta a evolução
desses códigos. Não seria bom poder colocar em um arquivo JAR os
arquivos com os códigos Javascript de uso geral? Não seria bom não
perdermos mais o controle da última versão utilizada dos frameworks
Javascript? Por esse motivo, surgiu a ideia de guardar os arquivos Java
Scripts dentro de arquivo JAR. Nesta seção, vamos ver uma forma fácil e
eficaz de resolver este problema.
Autor: Deivison Servat Sporteman ([email protected])
Listagem 1. Servlet que lê os arquivos Javascript.
package mundoj.servlet;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JavaScriptServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse resp)
throws ServletException, IOException {
try {
PrintWriter out = null;
String url = request.getRequestURL().toString();
url = url.substring(url.indexOf(“javascriptJar/”) + 13);
InputStream inputStream = this.getClass().getResourceAsStream(url);
//Abre arquivo Java Script do JAR
if (inputStream != null) {
BufferedReader bufferedReader = null;
out = new PrintWriter(resp.getWriter());
bufferedReader = new BufferedReader(
new InputStreamReader(inputStream));
StringBuffer js = new StringBuffer();
while (bufferedReader.ready()) {
js.append(bufferedReader.readLine() + “\n”);
}
out.println(js.toString());
}
} catch (Exception ex) {
ex.printStackTrace();
}
Vejamos na prática como salvar os arquivos Javascript em um arquivo
JAR e utilizar os mesmos em uma página HTML. Para executarmos este
processo será preciso criar o arquivo JAR com os arquivos Javascript e
também criar um Servlet que irá ler os arquivos Javascript e escrever os
mesmos na interface. O Servlet, apresentado na Listagem 1, é o grande
segredo por trás desta implementação, pois será ele o responsável por
enviar os códigos Javascript do arquivo JAR para o HTML.
O Servlet apresentado na Listagem 1 estará também dentro do arquivo
JAR. O próximo passo é compilá-lo e adicioná-lo em um arquivo JAR.
Utilizando os comandos da Listagem 2, é criado o arquivo javascript.jar.
Será neste arquivo JAR que já contém nosso Servlet que serão armazenados também os arquivos Javascript. Na Listagem 3 está apresentado um
arquivo Javascript de exemplo.
Agora é preciso adicionar o arquivo Javascript (Exemplo.js) que foi criado na Listagem 3 no arquivo javascript.jar. Para fazer isto, basta abrir o
arquivo JAR utilizando um descompactador (winrar,winzip etc.) e copiar
o arquivo Exemplo.js.
6
}
}
Após ser criado o arquivo JAR, será mostrado como ele pode ser adicionado em uma página. Para testarmos se o código está funcionando corretamente é preciso criar um projeto web. Após a criação do projeto deve
ser importado o arquivo JAR criado, e adicionado no arquivo web.xml a
referência para o servlet, de acordo com a Listagem 4. Também foi criado
um formulário HTML/JSP, apresentado na Listagem 5, que executará o
Javascript do exemplo.
Listagem 2. Criando nosso JAR.
Com o arquivo web.xml devidamente configurado, o arquivo JAR importado e o formulário de teste já criado, só é preciso rodar a aplicação e ver
o Javascript ser executado.
function exemplo(){
alert(‘Jogo Rápido – Mundoj’);
}
www.mundoj.com.br
//Entre na pasta do servlet .java
javac JavaScriptServlet.java
//Volte até o inicio do package
jar cvf javascript.jar mundoj\servlet\*.class
Listagem 3. Arquivo Exemplo.js.
$PMVOBt+PHP3ÈQJEP
Listagem 4. Adicionando Servlet em no arquivo web.xml.
Listagem 5. Formulário de teste(index.jsp).
<servlet>
<servlet-name>Mundoj</servlet-name>
<servlet-class>mundoj.servlet.JavaScriptServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Mundoj</servlet-name>
<url-pattern>/javascriptJar/*</url-pattern>
</servlet-mapping>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”>
<title>Mundoj – Jogo Rápido</title>
<script src=”javascriptJar/Exemplo.js” > </script>
</head>
<body>
<input type=”button” onClick=”exemplo()” value=”Teste” />
</body>
</html>
Formatando componentes Swing utilizando HTML
Autor: Charbel Szymanski ([email protected])
Thiago Schwartz ([email protected])
A forma de utilizar HTML em componentes Swing é bem simples: basta definir
o atributo text do objeto com um conteúdo HTML. Porém, é necessário que o
conteúdo esteja entre as tags delimitadoras <html> e </html>.
A Listagem 1 possui um exemplo de uso, cujo efeito está apresentado na figura 1.
Figura 1. Resultado da execução da Listagem 1.
O primeiro JLabel mostra como podemos alterar o tamanho de um trecho do
texto, sem alterar a formatação do restante, através da tag font do HTML. Já
o segundo mostra algumas outras variações de estilo de texto mescladas ao
estilo original.
O terceiro label mostra o poder do renderizador HTML do Java. Ele reconhece
tanto as tags bold (<b>) quanto strong (<strong>), além da propriedade
font-weight do estilo do trecho contido entre as tags span. O quarto label e
o botão mostram ainda como o Java trata quebras de linha (<br />) e textos
sublinhados, respectivamente.
Hoje, a maioria das propriedades do CSS para manipulação de texto e posicionamento já estão sendo renderizadas pelo Java. Entretanto, alguns atributos
de borda e outros, como border, display e line-height, ainda não estão completamente implementados.
Para obter a lista de todas as tags HTML renderizadas pelo Java, basta acessar
a documentação oficial da classe HTML.Tag, disponível no site da Sun, através
do endereço:
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/html/
HTML.Tag.html
Já para obter a lista de todas as propriedades de CSS, acessíveis através do
atributo style de alguma tag HTML, o endereço para consulta é:
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/html/
CSS.html
Listagem 1. Definindo o conteúdo como HTML.
import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TesteHtml {
public static void main(String[] args) {
JFrame janela = new JFrame(“Utilizando HTML em JLabel e JButton”);
janela.setSize(400, 200);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Font font = new Font(“Arial”, Font.PLAIN, 14);
JLabel label1 = new JLabel();
label1.setFont(font);
label1.setText(“<html><body>Este texto está em <font
color='blue' size='8'>azul e maior.
</font></body></html>”);
JLabel label2 = new JLabel();
label2.setFont(font);
label2.setText(“<html><body>Este texto está em <b>negrito</b> e
<i>itálico.</i></body></html>”);
JLabel label3 = new JLabel();
label3.setFont(font);
label3.setText(“<html><body>Texto em <span style='fontweight: bold'>negrito</span>, <strong>negrito</strong> e
<b>negrito.</b></body></html>”);
JLabel label4 = new JLabel();
label4.setFont(font);
label4.setText(“<html><body>Este texto está com quebra <br /> de
linha.</body></html>”);
JButton btn = new JButton(“<html>Botão com parte do texto
<u>sublinhado</u></html>”);
btn.setFont(font);
janela.getContentPane().setLayout(new FlowLayout());
janela.getContentPane().add(label1);
janela.getContentPane().add(label2);
janela.getContentPane().add(label3);
janela.getContentPane().add(label4);
janela.getContentPane().add(btn);
janela.setVisible(true);
}
}
Saber mais
A utilização de HTML em interfaces gráficas baseadas em Swing pode apresentar uma excelente ferramenta, especialmente para quem já possui familiaridade na elaboração de páginas HTML. Todos os componentes que herdam de
JComponent e que possuem o atributo text podem ser formatados em HTML
(JButton, JLabel, JMenuItem, JMenu, JRadioButtonMenuItem, JCheckBoxMenuItem, JTabbedPane, JToolTip, JToggleButton, JCheckBox e JRadioButton).
ht t p : / / j ava . s u n . co m / d o c s / b o o k s / t u to r i a l /
uiswing/components/html.html
http://www.java2s.com/Tutorial/Java/0240__
Swing/HTMLformattingbysettingthetextonalabel.htm
7
Download