Olá a todos!
Hoje trago para vocês uma classe que torna possível obter o endereço MAC, o IP e o nome da máquina!!
Aproveitem!
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import javax.swing.JOptionPane;
/**
* @author Dalí Freire Dias
* @version 03/07/2007
*/
public class FacadeNet
{
public static String getMAC()
{
InetAddress localHost;
NetworkInterface networkInterface;
String mac = "";
try {
localHost = InetAddress.getLocalHost();
networkInterface = NetworkInterface.getByInetAddress( localHost );
mac = getString( networkInterface.getHardwareAddress() );
} catch( UnknownHostException e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter endereço MAC!", "", JOptionPane.ERROR_MESSAGE );
} catch( SocketException e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter endereço MAC!", "", JOptionPane.ERROR_MESSAGE );
} catch( Exception e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter endereço MAC!", "", JOptionPane.ERROR_MESSAGE );
}
return mac.toUpperCase();
}
public static String getIP()
{
InetAddress localHost;
String ip = "";
try {
localHost = InetAddress.getLocalHost();
ip = localHost.getHostAddress();
} catch( UnknownHostException e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter IP!", "", JOptionPane.ERROR_MESSAGE );
} catch( Exception e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter IP!", "", JOptionPane.ERROR_MESSAGE );
}
return ip;
}
public static String getNomeDaMaquina()
{
InetAddress localHost;
String ip = "";
try {
localHost = InetAddress.getLocalHost();
ip = localHost.getHostName();
} catch( UnknownHostException e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter Nome da máquina!", "", JOptionPane.ERROR_MESSAGE );
} catch( Exception e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter Nome da máquina!", "", JOptionPane.ERROR_MESSAGE );
}
return ip;
}
private static String getString( byte[] bytes )
{
StringBuilder s = new StringBuilder();
for( int i = 0; i < bytes.length; i++ ) {
int parteAlta = ((bytes[i] >> 4) & 0xf) << 4;
int parteBaixa = bytes[i] & 0xf;
if( parteAlta == 0 ) s.append( '0' );
s.append( Integer.toHexString( parteAlta | parteBaixa ) );
}
return s.toString();
}
/**
* @param args
*/
public static void main( String[] args )
{
JOptionPane.showMessageDialog( null, "Nome da máquina: " + getNomeDaMaquina() + "\nIP: " + getIP() + "\nMAC: " + getMAC() );
System.out.println( "Nome da máquina: " + getNomeDaMaquina() + "\nIP: " + getIP() + "\nMAC: " + getMAC() );
}
}
segunda-feira, 18 de fevereiro de 2008
sexta-feira, 1 de fevereiro de 2008
Como colocar a aplicação na bandeja do sistema (System tray).
Olá a todos!
Hoje trago um exemplo prático de como colocar sua aplicação java no 'System tray'.
Não sabe que diaxo é 'System tray'?
Bom.. 'System tray' é o local onde ficam ícones pequenos para acesso rápido à algumas funções do sistema como relógio, controle de volume, antivirus e por aí vai.
Ainda não entendeu?? a figura deve te ajudar! =]
Hoje trago um exemplo prático de como colocar sua aplicação java no 'System tray'.
Não sabe que diaxo é 'System tray'?
Bom.. 'System tray' é o local onde ficam ícones pequenos para acesso rápido à algumas funções do sistema como relógio, controle de volume, antivirus e por aí vai.
Ainda não entendeu?? a figura deve te ajudar! =]
import java.awt.AWTException;As figuras abaixo ilustram o resultado da execução do código apresentado.
import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.PopupMenu;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.image.BufferedImage;
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.plaf.metal.MetalIconFactory;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.SwingConstants;
/** * @author Dalí Freire Dias */
public class SystemTray extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private TrayIcon bandeja = null;
private JLabel jLabel = null;
/** * @param args */
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
SystemTray thisClass = new SystemTray();
thisClass.setVisible(true);
}
});
}
/** * This is the default constructor */
public SystemTray() {
super();
initialize();
this.bandeja = new TrayIcon( getImagemTray(), "Exemplificando 'System tray'", getPopupMenuTray() );
adicionaEventos();
}
/** * This method initializes this * * @return void */
private void initialize() {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(300, 200);
this.setLocation( (screenSize.width - this.getSize().width)/2, (screenSize.height - this.getSize().height)/2 );
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.setContentPane(getJContentPane());
this.setTitle("System tray");
}
/** * Adiciona os eventos */
private void adicionaEventos()
{
bandeja.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
botaoAbrir();
}
});
WindowListener sair = new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
botaoFechar();
}
};
this.addWindowListener( sair );
}
/** * Encerra o sistema */
private void botaoSair()
{
Object[] opcoes = { "Sair", "Cancelar" };
int opcao = JOptionPane.showOptionDialog( this, "Deseja sair do sistema? \n",
"Exemplificando 'System tray'", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, opcoes, opcoes[1]);
if ( opcao == JOptionPane.YES_OPTION ) {
System.exit( 0 );
}
}
/** * Coloca o sistema no 'System tray' */
private void botaoFechar()
{
try {
java.awt.SystemTray.getSystemTray().add( bandeja );
bandeja.displayMessage( "Exemplificando 'System tray'",
"A aplicação 'Exemplificando System tray' ainda está em execução. " +
"\nDê um clique duplo neste ícone para visualizá-la!",
TrayIcon.MessageType.NONE );
this.setVisible( false );
} catch ( AWTException e1 ) {
JOptionPane.showMessageDialog( null, "Falha ao adicionar ícone na bandeja do sistema!", "", JOptionPane.ERROR_MESSAGE );
e1.printStackTrace();
this.setVisible( true );
} catch( Exception e ) {
JOptionPane.showMessageDialog( null, "Falha ao adicionar ícone na bandeja do sistema!", "", JOptionPane.ERROR_MESSAGE );
e.printStackTrace();
this.setVisible( true );
}
}
/** * Restaura o sistema */
private void botaoAbrir()
{
java.awt.SystemTray.getSystemTray().remove( bandeja );
this.setVisible( true );
}
/** * Retorna o icone que ficará na bandeja. * @return Image * @throws HeadlessException */
private Image getImagemTray() throws HeadlessException
{
Icon defaultIcon = MetalIconFactory.getTreeComputerIcon();
Image img = new BufferedImage(defaultIcon.getIconWidth(), defaultIcon
.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR);
defaultIcon.paintIcon(new Panel(), img.getGraphics(), 0, 0);
// Image img = Toolkit.getDefaultToolkit().getImage( getClass().getResource("/imagens/icone_bandeja.gif") );
return img;
}
/**
* Retorna o menu que é exibido quando clica com o botão direito no ícone da bandeja.
* @return PopupMenu
* @throws HeadlessException
*/
private PopupMenu getPopupMenuTray() throws HeadlessException
{
PopupMenu menu = new PopupMenu();
MenuItem abrir = new MenuItem( "Abrir" );
abrir.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ) {
botaoAbrir();
}
});
MenuItem fechar = new MenuItem( "Fechar" );
fechar.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
botaoSair();
}
});
menu.add( abrir );
menu.add( fechar );
return menu;
}
/**
* This method initializes jLabel
* @return javax.swing.JLabel
*/
private JLabel getJLabel() {
if (jLabel == null) {
jLabel = new JLabel();
jLabel.setText("Exemplificando o uso do 'System tray'");
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
jLabel.setBounds(new Rectangle(1, 65, 292, 16));
}
return jLabel;
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel */
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJLabel(), null);
}
return jContentPane;
}
}
Dúvidas? Sugestões? Críticas? Pode comentar!!!
Marcadores:
bandeja do sistema,
java,
system tray
segunda-feira, 28 de janeiro de 2008
eclipse, trabalhando com Swing
Bom dia!!
Hoje escrevo um complemento do post anterior, mostrando como começar a construir aplicações Java usando swing no eclipse.
Para isso devemos instalar o plugin Visual Editor (VE) e seus pré-requisitos (EMF e GEF).
vamos lá..
Eclipse instalado, devemos agora baixar e instalar os plugins necessários: Visual Editor, Eclipse Modeling Framework e Graphical Editing Framework. A atual versão do VE é a v1.2, a do EMF é a 2.2.4 e a do GEF é a 3.3.1.
Se tudo ocorreu como planejado você deve ter baixado três arquivos compactados de nomes semalhantes a VE-runtime-1.2.zip, emf-sdo-runtime-2.2.4.zip e GEF-runtime-3.3.1.zip. Para instalar descompacte os arquivos baixados na pasta de mesmo nível da sua pasta eclipse... a figura abaixo ilustra melhor, caso não tenha entendido.

Plugin instalado vamos começar o trabalho...
Para esse exemplo foi criado um projeto de nome 'NovoProjeto' e os pacotes controle, modelo e visão (o post anterior ilustra esses passos). Feito isso, devemos criar uma nova classe do tipo 'Visual Class'. Para isso clique com o botão direito do mouse sobre o pacote cuja classe irá pertencer, no nosso caso o pacote 'visao', vá em 'New' -> 'Visual Class'.

Na janela que abrirá, digite o nome desejado da classe, selecione o tipo da classe (JFrame, JDialog, JPanel...) dentro do componente 'Style' (selecione a pasta 'Swing') e clique em 'Finish'.

Pronto! Sua classe gráfica swing já está criada!
Agora é só começar a adicionar os componentes através da aba 'Palette', modificar suas propriedades atraves da aba 'Properties' ou diretamente no código!

Espero ter esclarecido algumas dificuldades. Duvidas? Sugestões? Agradecimento? Não deixe de deixar seu comentário!
Abraços e até a próxima!
=]
Hoje escrevo um complemento do post anterior, mostrando como começar a construir aplicações Java usando swing no eclipse.
Para isso devemos instalar o plugin Visual Editor (VE) e seus pré-requisitos (EMF e GEF).
vamos lá..
Eclipse instalado, devemos agora baixar e instalar os plugins necessários: Visual Editor, Eclipse Modeling Framework e Graphical Editing Framework. A atual versão do VE é a v1.2, a do EMF é a 2.2.4 e a do GEF é a 3.3.1.
Se tudo ocorreu como planejado você deve ter baixado três arquivos compactados de nomes semalhantes a VE-runtime-1.2.zip, emf-sdo-runtime-2.2.4.zip e GEF-runtime-3.3.1.zip. Para instalar descompacte os arquivos baixados na pasta de mesmo nível da sua pasta eclipse... a figura abaixo ilustra melhor, caso não tenha entendido.
sexta-feira, 25 de janeiro de 2008
eclipse, primeiro contato!
Olá a todos!
No post de hoje escrevo sobre como começar com a IDE eclipse. Pensei em escrever sobre isso depois de ter recebido pedidos de socorro de alguns amigos na universidade. Vale lembrar que esse post é destinado aqueles que nunca tiveram contato com o eclipse, portanto, se você já teve alguma experiencia com a IDE essa leitura vai te parecer um pouco maçante.
Vamos ao trabalho!
Para começar vamos baixar o eclipse no site http://www.eclipse.org/downloads/. Hoje a versão atual é a '3.3.1.1'.
Se tudo der certo você deve ter baixado um arquivo compactado de nome semelhante a 'eclipse-SDK-3.3.1.1-win32.zip'. Feito isso basta descompactar o arquivo baixado que será criada uma pasta de nome eclipse. Para iniciar a execução do eclipse, basta entrar na pasta criada e executar o arquivo 'eclipse.exe'.
Pronto!
Já dentro do eclipse.... para criar um novo projeto existem dois caminhos:
Opção 01 - 'File' -> 'New' -> 'Project'
Opção 02 - Clique com botão direito dentro de 'Package Explorer' -> 'New' -> 'Project'
Feito isso selecione o tipo do projeto e clique em 'Next >'. No nosso caso, 'Java Project'...

... agora digite o nome do projeto e clique em 'Finish'. Para exemplificar criamos o projeto 'nomeDoProjeto'.

Projeto criado, vamos agora criar um pacote. Para criar um pacote, clique no icone indicado na figura, digite o nome do pacote desejado e clique em 'Finish'.

Agora criaremos uma classe-exemplo. Para criar uma nova classe, clique com o botão direito sobre o pacote cuja classe pertencerá e vá em 'New' -> 'Class'.

Agora digite o nome desejado para a nova classe e clique em 'Finish'.

Classe criada, vamos agora ilustar como executar uma classe que tenha o método main implementado. Clique no botão indicado na figura, vá em 'Run As' -> 'Java Application'.

Se tudo ocorreu bem... sua classe foi executada com sucesso! Caso sua classe tenha usado a saída padrão (System.out...) para exibir alguma informação, essa saida foi exibida na aba 'Console'.
O eclipse possui inúmeras funcionalidades incríveis, não é atoa que ela é a IDE java mais utilizada no mundo.
Uma funcionalidade que merece ser citada é o autocompletamento de código. Todos nós sabemos que é muito chato e cansativo escrevermos 'System.out.println' sempre que quisermos imprimir algo na tela. Para nossa sorte, no eclipse, basta escrevermos 'sysout', apertar as teclas 'ctrl' + 'barra de espaço' e pronto!
É isso aí pessoal! A partir de agora vocês podem começar a usar e descobrir as milhares de facilidades que o eclipse oferece!
Ainda ficou alguma dúvida? sugestões?
É só comentar!!!!
Um abraço e até a próxima!
Vamos ao trabalho!
Para começar vamos baixar o eclipse no site http://www.eclipse.org/downloads/. Hoje a versão atual é a '3.3.1.1'.
Se tudo der certo você deve ter baixado um arquivo compactado de nome semelhante a 'eclipse-SDK-3.3.1.1-win32.zip'. Feito isso basta descompactar o arquivo baixado que será criada uma pasta de nome eclipse. Para iniciar a execução do eclipse, basta entrar na pasta criada e executar o arquivo 'eclipse.exe'.
Pronto!
Já dentro do eclipse.... para criar um novo projeto existem dois caminhos:
Opção 01 - 'File' -> 'New' -> 'Project'
Opção 02 - Clique com botão direito dentro de 'Package Explorer' -> 'New' -> 'Project'
quinta-feira, 24 de janeiro de 2008
Apresentação
Bom dia! =]
No post anterior apresentei para vocês meu currículo... mas, e quem eu sou?
Dentro de casa tive uma formação bastante diversificada, tendo um pai músico, analista de sistemas e economista (parece brincadeira neh?), uma mãe bibliotecária e um irmão historiador e músico... portanto não se assustem caso encontrem um post falando de artes, música, curiosidades em geral ou artigos nas áreas acima citadas.. enfim... pode ser que você encontre muito mais do que tecnologia por aqui!
Além de estudar sou Analista de Sistemas da Prefeitura Municipal de Itabuna e bolsista em um projeto de extensão de acordo com o convênio para cooperação técnico-científica firmado entre a Waytec Tecnologia em Comunicação Ltda e a UESC.
Resumindo....
Dalí Freire, estudante de computação, analista de sistemas, filho de Márcia e Cacá, irmão de Uiá e namorado de Geórgia!
Até a proxima pessoal!
=]
No post anterior apresentei para vocês meu currículo... mas, e quem eu sou?
Atualmente sou estudante do Curso de Ciência da Computação na Universidade Estadual de Santa Cruz - UESC, em Ilhéus - BA. Escolhi computação simplesmente por gostar do assunto. Na verdade desde criança sempre fui muito curioso por esses assuntos ligados à tecnologia, "viajava" naqueles filmes de ficção científica e por aí vai... não que hoje tenha mudado muita coisa... mas sempre tive muita curiosidade em saber como as coisas funcionam.
Dentro de casa tive uma formação bastante diversificada, tendo um pai músico, analista de sistemas e economista (parece brincadeira neh?), uma mãe bibliotecária e um irmão historiador e músico... portanto não se assustem caso encontrem um post falando de artes, música, curiosidades em geral ou artigos nas áreas acima citadas.. enfim... pode ser que você encontre muito mais do que tecnologia por aqui!
Além de estudar sou Analista de Sistemas da Prefeitura Municipal de Itabuna e bolsista em um projeto de extensão de acordo com o convênio para cooperação técnico-científica firmado entre a Waytec Tecnologia em Comunicação Ltda e a UESC.
Resumindo....
Dalí Freire, estudante de computação, analista de sistemas, filho de Márcia e Cacá, irmão de Uiá e namorado de Geórgia!
Até a proxima pessoal!
=]
terça-feira, 22 de janeiro de 2008
Começando...
Olá pessoALL,
Como vocês estão vendo, também estou entrando na onda dos blog's!
Bom .. por aqui vocês encontrarão informações pessoais, um pouco sobre tecnologias da informação, engenharia de software, algumas idéias, artigos, informações sobre minha carreira profissional, sobre computação em geral e muito ... muito sobre JAVA.
Aproveito esse primeiro post para divulgar meu currículo, enquanto vou pensando no próximo, que terá como tema 'Quem eu sou" ok?
Resumo
Atuo na área de desenvolvimento de softwares há quatro anos com Programação Orientada a Objetos, Análise de Sistemas, Análise de Negócios e Banco de Dados.
Possuo grande interesse em Processos de Desenvolvimento (RUP, Extreme Programming), Padrões de Projeto, Gerenciamento de Projetos, Programação Orientada a Objetos, Qualidade e Desenvolvimento de Software.
Formação acadêmica
2003 – Atual. UESC - Universidade Estadual de Santa Cruz Ilhéus – BA
Bacharelando em Ciência da Computação.
Objetivo
Atuação em desenvolvimento de sistemas.
Qualificações
Experiência profissional
Produção científica e tecnológica
Participação em eventos
Como vocês estão vendo, também estou entrando na onda dos blog's!
Bom .. por aqui vocês encontrarão informações pessoais, um pouco sobre tecnologias da informação, engenharia de software, algumas idéias, artigos, informações sobre minha carreira profissional, sobre computação em geral e muito ... muito sobre JAVA.
Aproveito esse primeiro post para divulgar meu currículo, enquanto vou pensando no próximo, que terá como tema 'Quem eu sou" ok?
Resumo
Atuo na área de desenvolvimento de softwares há quatro anos com Programação Orientada a Objetos, Análise de Sistemas, Análise de Negócios e Banco de Dados.
Possuo grande interesse em Processos de Desenvolvimento (RUP, Extreme Programming), Padrões de Projeto, Gerenciamento de Projetos, Programação Orientada a Objetos, Qualidade e Desenvolvimento de Software.
Formação acadêmica
2003 – Atual. UESC - Universidade Estadual de Santa Cruz Ilhéus – BA
Bacharelando em Ciência da Computação.
Objetivo
Atuação em desenvolvimento de sistemas.
Qualificações
- Experiência em modelagem e implementação de Banco de Dados Relacionais utilizando FirebirdSQL e MSSQL (SQL Server).
- Experiência em Análise de Sistemas Orientados a Objetos com UML.
- Experiência com as linguagens Java, HTML, XHTML, JavaScript, CSS, JSP.
- Experiência com Processos de Desenvolvimento.
- Experiência com as ferramentas Eclipse, JBuilder, JUDE, IBAdmin, IReports, CVS, Subversion, DreamWeaver, Fireworks, DBDesigner, JUDE.
- Bom nível de leitura em Inglês.
Experiência profissional
- Analista de Sistemas da Prefeitura Municipal de Itabuna - BA.
- Período: desde junho de 2007.
- Desenvolvedor/Bolsista no projeto “Desenvolvimento de um software para Gerenciamento e Aplicação de Capacitação à Distância, apoiado nos benefícios de usabilidade da tecnologia de Telas Sensíveis ao Toque” de acordo com o convênio para cooperação técnico-científica firmado entre a Waytec Tecnologia em Comunicação Ltda e a Universidade Estadual de Santa Cruz - UESC, atuando com análise e desenvolvimento de sistemas web utilizando as tecnologias JSP, XHTML, CSS e FirebirdSQL.
- Período: desde maio de 2007.
- Estagiário Sodré Transporte de Malotes, atuando com análise e desenvolvimento de sistemas desktop utilizando as tecnologias Java e FirebirdSQL.
- Período: junho de 2006 até junho de 2007.
- Estagiário SofTrends, atuando com análise e desenvolvimento de sistemas web utilizando as tecnologias JSP, HTML, CSS e FirebirdSQL.
- Período: janeiro de 2006 até junho de 2006.
- Bolsista de iniciação tecnológica no CEPEDI (Centro de Pesquisa e Desenvolvimento Tecnológico em Informática e Eletro-eletrônica de Ilhéus).
- Período: junho de 2005 até junho de 2006.
- Integrante do Núcleo JAVA – CEPEDI
- Período: junho de 2005 até junho de 2006.
- Trainee TecnoJr – Empresa Jr de Computação UESC
Produção científica e tecnológica
- Desenvolvimento de software para uma transportadora - InforTrans. Trabalho de conclusão de curso na disciplina Estágio Supervisionado, 2006.
- Confeccionando gráficos utilizando a biblioteca JFreeChart – Artigo, 2006.
- Métodos para gerenciamento de NO-BREAKS via protocolo SNMP – Artigo, 2005
Participação em eventos
- VII Semana de informática da UESC – SINFORM
- Laboratório Desenvolvendo com PHP. Setembro de 2007
- CIEE
- Ciclo de Oficinas de Capacitação (Atitude Empreendedora, Introdução a Projetos, Resolução de Problemas, Tomada de Decisão, Liderança, Trabalho em Equipe, Gestão de Tempo, Lógica e Criatividade). Fevereiro de 2007
- CEPEDI
- UML, Teoria e Prática. Setembro de 2005
- Gerência de Configuração e Mudança. Julho de 2005
- Curso de JSP. Julho de 2005
- CONTIBA
- I Congresso De Tecnologia e Inovação Da Bahia.
- V Semana de informática da UESC – SINFORM
- Mini-curso Desenvolvendo Aplicações Para Celulares Com J2ME. Outubro de 2005
- CEPEDI/LABBI
- Curso de Desenvolvimento de Software com Processo de desenvolvimento PRAXIS. Fevereiro de 2005
- BIOMAT IV
- I Simpósio Internacional de Matemática e Biologia Computacional.
- IV Semana de Informática da UESC – SINFORM
- Mini-curso Java Database Connectivity (JDBC). Setembro de 2004
- SBC 2004
- XXIV Congresso da Sociedade Brasileira de Computação.
- TecnoJr
- Minicurso GNU/Linux. Novembro de 2003
Assinar:
Postagens (Atom)