Wednesday, November 09, 2005

LG lança primeiro celular com SO baseado totalmente em java

A LG, assim como muitas outras grandes corporações, está apostando alto em Java e acaba de lançar o primeiro celular com sistema operacional totalmente baseado nessa linguagem.

Algumas características do dispositivo:
  • 176x220 color TFT display;
  • 1.3MPixel camera;
  • Bluetooth, and an SD Card memory card for storage of up to 1GB of applications, music, video and pictures;
  • The handset plays MP3, AAC and AAC+ music formats as well as H.263 and MPEG4 videos.

clique aqui para ler a notícia na íntegra.

Quem disse que informática não dá dinheiro?

Essa notícia causou-me um grande contentamento, afinal para nós da área da informática nos trás alguma perspectiva. Eu também terei o meu avião.

Donos do Google usam Boeing 767 como jatinho particular

Tuesday, November 08, 2005

Coisas Interessantes Feitas em Java

Abaixo seguem alguns frameworks interessantes para conhecermos:

  • Swixml
    • Para quem quiser colocar todo o código Swing em XML (para quem ainda não entendeu: GERAR TELAS DESKTOP A PARTIR DE ARQUIVOS XML), esse framework é o melhor que já testei. É leve, robusto e faz com que a camada de visão fique totalmente separada do controle, deixando o código mais legível, além de facilitar a manutenção. Seu criador, Wolf Paulus, possui um fórum muito bacana e sempre responde a qualquer dúvida.

  • Apache Derby
    • Trata-se de um banco de dados de fácil instalação e manuseio, como citado no próprio site, o que elimina a instalação de um gerenciador em cada máquina cliente. Possui driver JDBC, suporta procedimentos e funções em Java, chave estrangeira (FK) e check constraints, triggers, múltiplas conexões, backup on-line. Realmente vale a pena visitar o site e conhecê-lo de perto.

Monday, November 07, 2005

Probleminhas com Swing 2ª Edição

Trabalhar com interface desktop em Java, com Swing, nos obriga a conhecer algumas particularidades para poder trabalhar de modo correto.
A biblioteca Swing oferece dois tipos de janela (alguns chamam de "Formulário" - deve ser herança do Delphi ou VB, acredito eu) que são: JFrame e JDialog. A classe JFrame tem a característica de ser a janela principal da aplicação, enquanto a JDialog é mais voltada para ser as janelas filhas do sistema, pois ele pode guardar uma referência a janela que a invocou (parent), pode ser "modal" ou não (quando uma janela é modal significa que quando ativa o usuário só consegue operar nesta janela e em mais nenhuma).
Não entrarei nos detalhes de herança ou métodos, afinal o javadoc foi criado para isso mesmo. O objetivo aqui é mostrar como centralizar as janelas no desktop ou relativamente ao componente que a invocou.

1. Centralizando no desktop do sistema operacional:
Essa método espera como parâmetro alguma classe filha de Component. No caso, JFrame e JDialog herdam dela.

public void windowCentered(Component window){
/*Capturando a resolução do desktop do sistema operacional*/
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int w = dialog.getSize().width;
int h = dialog.getSize().height;
int x = (screenSize.width-w)/2;
int y = (screenSize.height-h)/2;
dialog.setLocation(x, y);
}

2. Centralizando um objeto Component dentro de outro:
O método setLocationRelativeTo(Component c) centraliza um componente em relação a outro informado no parâmetro. Esse método pertence a classe Window e é extendida por JFrame e JDialog.

Exemplo:

/*Este JFrame é a tela principal*/
JFrame mainWindow = new JFrame();
/*Este dialog será aberto e sua posição será no centro do frame acima*/
JDialog diag = new JDialog();
diag.setLocationRelativeTo(mainWindow);

Friday, November 04, 2005

Probleminhas com Swing 1ª Edição

Se você está querendo pintar uma imagem no fundo de um JPanel e escrever por cima dela com um JLabel transparente, leia o código abaixo:

/*Painel com a imagem.
Note que ao instanciá-lo, o método paintComponent é sobreposto para
desenhar a figura no painel.
*/
final ImageIcon image = new ImageIcon(this.getClass().getResource(
"/resources/images/my_splash_screen.png"));
JPanel imagePanel = new JPanel(){
/**/
public void paintComponent(Graphics g){
g.drawImage(image.getImage(), 0, 0, this.getWidth(), this.getHeight(), null);

}
};

para deixar o JLabel transparente configure a propriedade "opaque" para false (label.setOpaque(false)) e insira-o no painel que contem a imagem.

Se alguém possuir alguma dúvida, poste um comentário.