Está en la página 1de 2

Jogo Rpido

coluna

Javascript do .HTML
para o .JAR
Atualmente, em projetos Web, tem se tornado comum a criao de
frameworks Javascript. Estes frameworks trazem um grande ganho de
tempo de desenvolvimento diminuindo o retrabalho de criar funes
que sempre so utilizadas (validar campos, validar formato, aplicar mscara em campo etc.). Porm, chato sempre ter que copiar os arquivos
Javascript, pois geralmente no se sabe qual a ltima verso, qual est
mais atualizada. Estes problemas atrapalham e tornam lenta a evoluo
desses cdigos. No seria bom poder colocar em um arquivo JAR os
arquivos com os cdigos Javascript de uso geral? No seria bom no
perdermos mais o controle da ltima verso utilizada dos frameworks
Javascript? Por esse motivo, surgiu a ideia de guardar os arquivos Java
Scripts dentro de arquivo JAR. Nesta seo, vamos ver uma forma fcil e
eficaz de resolver este problema.

Autor: Deivison Servat Sporteman (deivison@atsystem.com.br)

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 prtica como salvar os arquivos Javascript em um arquivo


JAR e utilizar os mesmos em uma pgina HTML. Para executarmos este
processo ser preciso criar o arquivo JAR com os arquivos Javascript e
tambm 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 trs desta implementao, pois ser ele o responsvel por
enviar os cdigos Javascript do arquivo JAR para o HTML.
O Servlet apresentado na Listagem 1 estar tambm dentro do arquivo
JAR. O prximo 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 contm nosso Servlet que sero armazenados tambm 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.

}
}

Aps ser criado o arquivo JAR, ser mostrado como ele pode ser adicionado em uma pgina. Para testarmos se o cdigo est funcionando corretamente preciso criar um projeto web. Aps a criao do projeto deve
ser importado o arquivo JAR criado, e adicionado no arquivo web.xml a
referncia para o servlet, de acordo com a Listagem 4. Tambm foi criado
um formulrio 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 formulrio de teste j criado, s preciso rodar a aplicao e ver
o Javascript ser executado.

function exemplo(){
alert(Jogo Rpido 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+PHP3QJEP

Listagem 4. Adicionando Servlet em no arquivo web.xml.

Listagem 5. Formulrio 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 Rpido</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 (charbel@evoluma.com)
Thiago Schwartz (schwartzccp@gmail.com)

A forma de utilizar HTML em componentes Swing bem simples: basta definir


o atributo text do objeto com um contedo HTML. Porm, necessrio que o
contedo 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 execuo da Listagem 1.

O primeiro JLabel mostra como podemos alterar o tamanho de um trecho do


texto, sem alterar a formatao do restante, atravs da tag font do HTML. J
o segundo mostra algumas outras variaes 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>), alm da propriedade
font-weight do estilo do trecho contido entre as tags span. O quarto label e
o boto mostram ainda como o Java trata quebras de linha (<br />) e textos
sublinhados, respectivamente.
Hoje, a maioria das propriedades do CSS para manipulao de texto e posicionamento j esto sendo renderizadas pelo Java. Entretanto, alguns atributos
de borda e outros, como border, display e line-height, ainda no esto completamente implementados.
Para obter a lista de todas as tags HTML renderizadas pelo Java, basta acessar
a documentao oficial da classe HTML.Tag, disponvel no site da Sun, atravs
do endereo:
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, acessveis atravs do
atributo style de alguma tag HTML, o endereo para consulta :
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/html/
CSS.html

Listagem 1. Definindo o contedo 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=&apos;blue&apos; size=&apos;8&apos;>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>itlico.</i></body></html>);
JLabel label3 = new JLabel();
label3.setFont(font);
label3.setText(<html><body>Texto em <span style=&apos;fontweight: bold&apos;>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>Boto 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 utilizao de HTML em interfaces grficas baseadas em Swing pode apresentar uma excelente ferramenta, especialmente para quem j possui familiaridade na elaborao de pginas 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

También podría gustarte