There is insufficient storage to install this suite – J2ME

Ao compilar um projeto J2ME no Windows me deparei com o seguinte problema:

*** Error ***
A problem occured during deploying application from http://127.0.0.1:2317/EXEMPLO.jad
* Reason:
There is insufficient storage to install this suite

Continue reading

java.lang.IllegalArgumentException: width<=0 height<=0

Olá.
Bom, me deparei com o seguinte problema ao tentar compilar um projeto J2ME:
Ao tentar executar o programa o compilador abria e logo feixando dando a seguinte excessão:

“java.lang.IllegalArgumentException:  width<=0 height<=0″

(e varias outras mensagens como :
“java.lang.IllegalArgumentException:  width<=0 height<=0″
java.lang.IllegalArgumentException:  width<=0 height<=0
at java.awt.image.SampleModel.<init>(libgcj.so.11)
received signal SIGSEGV
Method…………: b745970c ‘javax/microedition/lcdui/ImmutableImage.createIcon (static)’
at java.awt.image.SinglePixelPackedSampleModel.<init>(libgcj.so.11)
[...]
)

Continue reading

Clonar Objeto em J2ME

Clonar Objeto em J2ME

Estava procurando uma melhor forma de utilizar a clonagem de objeto em j2me, e encontrei esta.

A clonagem que eu digo, é uma copia com valores identicos de uma outra instancia. Utilizo isso para
fazer verificações de alteracao do objeto.

Na classe que desejamos clonar iremos criar um contrutor que receba ela mesma,
assim ela vai receber a classe e popularemos o novo objeto com seus valores.
Criando um novo objeto identico.

Segue o exemplo abaixo da implementação do contrutor:

public class MinhaClasse {

    String nome;
    int idade;
    /**outros atributos**/
    
    /** Contrutor responsavel por criar um objeto clonado.
     * 
     * @param c MinhaClasse
     */
    public MinhaClasse(MinhaClasse c) {
        /** faça a clonagem ex:**/
        this.nome = c.getNome();
        this.idade = c.getIdade();
    }

    /**outros contrutores**/
    
    public int getIdade() {
        return idade;
    }

    public String getNome() {
        return nome;
    }
    
    /**Outros métodos**/
}

Como implementar:
Continue reading

Instalação Java Development Kit no Ubuntu.

Abra um terminal e digite o seguinte comando:

======================================================
$ sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”
======================================================

Logo em seguida digite:

================
$ sudo apt-get update
================

E agora para instalar o Sun Java você usará esses comandos:

==========================
$ sudo apt-get install sun-java6-jdk
==========================

Alem do pacote JDK temos os seguintes:

======================================================
sun-java6-bin sun-java6-fonts sun-java6-jdk sun-java6-plugin
sun-java6-demo sun-java6-javadb sun-java6-jre sun-java6-source
======================================================

Normalmente eu instalo o jre, fonts, plugin e o jdk.

Vlws.
Guilherme B. Zarelli

Executar “Mid” e “Rmf” em Java

Ai pessoal uma forma bem simples de implementar em java um executor de arquivos mid ou rmf.

        try {
            Sequencer sequencer = MidiSystem.getSequencer();
            sequencer.open();
            // De arquivo
            InputStream is = new BufferedInputStream(new FileInputStream(new File("midfile")));
            // De URL
            is = new BufferedInputStream(new URL("http://hostname/rmffile").openStream());
            sequencer.setSequence(is);
            //Toca o audio
            sequencer.start();
        } catch (Exception e) {
            e.printStackTrace();
        }

Obrigado,
duvidas so avisar ;)…
Guilherme B. Zarelli

Criptografia de Dados

Bom dia,

Hoje estou postando um codigo simples de criptografia.

Não tem muito segredo para compreender o codigo, fiz passando no construtor dele o Tipo de criptografia ex : “MD5″, “SHA”, “SHA-64″, “SHA-128″, “SHA-256″ caso tenha outros não sei rsrsr… bem, o mais utilizado e seguro é a MD5.

Os dados são passados pelo método “Criptografar” e o valor será retornado pelo mesmo.

Segue o codigo:


public class Criptografia {

    private String tipo;

    public Criptografia(String tipo) {
        this.tipo = tipo;
    }

    public String Criptografar(String dados) {
        try {
            MessageDigest digest = MessageDigest.getInstance(tipo);
            digest.update(dados.getBytes());
            BASE64Encoder encoder = new BASE64Encoder();
            dados = encoder.encode(digest.digest());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dados;
    }
}

Uma forma de criptografar seus dados bem simples.
Há varias mais complexas com mais segurança, mas para pequenos projetos acho que esta basta.

Obrigado.
Guilherme B. Zarelli

Transparencia em JFrame

Aqui esta uma classe bem legal pra se utilizar, esta classe controla a transparencia de um JFrame.

Veja:

public class FrameTransparente extend JFrame{

    private JLabel label;

    public FrameTransparente() {
        init();
        AWTUtilities.setWindowOpacity(this, 0.7F);
    }

    public void init() {
        label = new JLabel("Teste de Transparencia");
        setSize(200, 250);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        add(label);
        setLayout(new GridBagLayout());
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        FrameTransparente f = new FrameTransparente();
        f.setVisible(true);
    }

}

O controle da transparencia do codigo ocorre nesta linha:

        AWTUtilities.setWindowOpacity(this, 0.7F);

Aonde você passa o frame que deseja utilizar a transparencia (this) e o valor dela. de 0 à 1.

Pronto bem simples e facio. podemos passar o frame como parametro para essa classe criando um controlador etc etc etc….

Segue uma scream de ex:

nesta imagem fiz um teste com valor 0.8.

Obrigado.

Guilherme B. Zarelli

Imagem de fundo em JPanel

Segue dois exemplos abaixo para inserir uma imagem de backgroud em um JPanel

Neste primeiro exemplo faz a imagem (“fundoPrincipal”) ser automaticamente redimencionada quando voce altera o tamanho da janela. Podendo tambem inserir uma imagem maior do que o tamanho do painel.

    /** Método que define a imagem de fundo da tela principal
     *  Com redimencionamento
     * @param g
     * @see JComponent#paintComponent(java.awt.Graphics)
     */
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g.create();
        g2d.drawImage(fundoPrincipal, 0, 0, this.getWidth(), this.getHeight(), null);
        g2d.dispose();
    }

Já neste exemplo a imagem (“fundoLogin”) fica do tamanho original e centralizada no painel sem alteração caso a janela mude de tamanho.

    /** Método que define a imagem de fundo da tela principal
     * Centralizado sem redimencionamento de imagem.
     * @param g
     * @see Graphics
     */
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        int x = (this.getWidth() - fundoLogin.getWidth(null));
        int y = (this.getHeight() - fundoLogin.getHeight(null));
        g.drawImage(fundoLogin, x, y, this);
    }

Segue uma imagem como ficaria:

É isso ae muito simples de se implementar….

Obrigado.

Guilherme B. Zarelli