Executando Java no Maemo (Nokia N800) – Parte 2 – SWT

Bom, como eu havia dito, voltamos com a segunda parte do tutorial Executando Java no Maemo, mas agora focando no uso de interface gráfica, que é o que mais desejamos🙂 .

Conforme o site do Jalimo, eles recomendam o uso do Eclipse SWT. No caso do OpenMoko (segundo o mesmo site) este também executa aplicações com o AWT e Swing.

O SWT (Standard Widget Toolkit) é uma biblioteca de classes de interface gráfica desenvolvidas pela fundação Eclipse, a mesma que mantém a IDE Eclipse, e está disponível para vários sistemas operacionais, entre eles, Windows, Linux, MacOS etc.

Antes de criar o exemplo para teste, vamos baixar o pacote do SWT para o computador, pois, para compilar o exemplo no computador, precisaremos desta biblioteca. Vá ao site do SWT e procure por Releases, versão Stable (Figura 01).

Figura 01

Figura 01

Clique no link do seu sistema operacional (escolhi o Windows) que uma nova página se abrirá (Figura 02).

Figura 02

Figura 02

Clique na seta verde para baixar o arquivo (swt-3.4-win32-win32-x86.zip, para Windows; swt-3.4-gtk-linux-x86.zip, para Linux). Após baixado, descompacte o arquivo no diretório de sua escolha (exemplo, C:\javaN800\swt). Dentro do diretório, haverá um arquivo com nome swt.jar, este é a biblioteca SWT que será utilizada para compilar nosso exemplo.

Agora vamos criar a classe que será executada no N800. Digite o texto abaixo no editor de sua preferência:

import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class SimpleSwtSample
{
	public static void main(String[] args)
	{
		// pega o display
		Display display = Display.getDefault();
		// cria a janela principal da aplicacao
		final Shell shell = new Shell(display);
		shell.setLayout(new RowLayout(SWT.VERTICAL));
		// cria e adiciona um Label
		Label label = new Label(shell, SWT.CENTER);
		label.setText("Ola Maemo N800!");
		// cria e adiciona um Label para
		// motrar as informacoes do sistema
		Label lblSistema = new Label(shell, SWT.CENTER);
		lblSistema.setText(info());
		// cria e adiciona um Button
		Button button = new Button(shell, SWT.CENTER);
		button.setText("Fechar");
		// adicionar um Listener para fechar a aplicação
		button.addListener(SWT.Selection, new Listener()
		{
			public void handleEvent(Event arg0)
			{
				shell.dispose();
			}
		});
		// abre a janela principal
		shell.open();
		// inicia a interface grafica
		while(!shell.isDisposed())
		{
			(!display.readAndDispatch())
			{
				display.sleep();
			}
		}
	}

	public static String info()
	{
		String versaoJava = System.getProperty("java.version");
		String nomeSO = System.getProperty("os.name");
		String versaoSO = System.getProperty("os.version");
		return "Versao Java: " + versaoJava + "\nS.O.: " + nomeSO + " " + versaoSO;
	}
}

Salve-o como SimpleSwtSample.java, no diretório onde foi descompactado o SWT baixado e execute o comando abaixo:

javac -cp swt.jar SimpleSwtSample.java

Serão gerados dois arquivos, SimpleSwtSample.class e SimpleSwtSample$1.class, que devem ser copiados para um diretório no cartão de memória que será inserido no N800 (em meu caso o cartão que foi usado no primeiro tutorial, no diretório java).

Insira o cartão no N800, abra o X Terminal e digite:

cd /media/mmc1/java
java -cp /usr/share/java/swt-gtk.jar: SimpleSwtSample

O resultado deverá ser a tela abaixo:

Figura 01

Figura 03

A aplicação só faz escrever na tela uma mensagem de Olá Mundo e algumas informações sobre o sistema onde está instalado o Java. Ao se clicar no botão Fechar ou no X no canto superior direito a aplicação será fechada. Ah, e se você acha que é somente isso que dá para fazer com Java no Maemo, veja as telas do segundo exemplo, disponível no site do Jalimo.

Estes dois exemplos foram retirados do site do Jalimo, o primeiro eu modifiquei só um pouco e o segundo é tal como está lá. Estou disponibilizando para download o arquivo JavaMaemoSWT.zip (disponível no Box.net  e no Mediafire), tanto os arquivos já compilados como os fontes. Fiquem a vontada para se divertir.

Ah, e antes que em me esqueça, na próxima parte deste tutorial, irei mostrar como rodar aplicativos com o toolkitt grático AWT.

Até lá.

Sobre Fábio Medeiros

Meu nome é Fábio Medeiros. Cearense de nascença e com muito orgulho (daí o nome do blog, uma referência à minha terra). Sou formado em Tecnologia em Telemática, pelo CEFET-CE. Escrevi alguns artigos sobre programação JavaME e dispositivos portáteis (PDA) para a revista WebMobile.
Esse post foi publicado em N800, Tutorial e marcado , , , . Guardar link permanente.

7 respostas para Executando Java no Maemo (Nokia N800) – Parte 2 – SWT

  1. As imagens do blog não estão aparecendo.
    Obrigado

  2. William Antônio Siqueira disse:

    Será que eu não posso usar AWT e nem Swing?

    Abraços

  3. Pingback: Executando Java no Maemo (Nokia N800) – Parte 3 – AWT « siriarah

  4. silvio disse:

    Será que eu posso executar o Jude no n800?

    • siriarah disse:

      Olá silvio,

      Não tenho certeza, pois nunca tentei isto🙂 , mas é bem provável que não rode devido à quantidade de memória RAM disponível pelo N800.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s