Blogger templates

Comunidade java aberto - Participe da nossa comunidade no facebook (clique aqui)

Visitas

terça-feira, 31 de julho de 2012

Mascara para formato Real em JTextField

,
Mascara para formato Real em JTextField

Formatando um JTextField para formato Moeda(R$ 0,00)
Formatando em tempo real

Somente crie uma classe com o código abaixo, para inserir esse novo campo, é preciso adicionar a classe na paleta Swing e depois arrastar o componente que esta na paleta para seu JFrame.

;]

  1.     import java.awt.event.KeyAdapter; 
        import java.awt.event.KeyEvent; 
        import java.math.BigDecimal; 
        import java.math.BigInteger; 
        import java.text.DecimalFormat; 
        import java.text.NumberFormat; 
        import javax.swing.JFrame; 
        import javax.swing.JTextField; 
        import javax.swing.event.CaretEvent; 
        import javax.swing.event.CaretListener; 
        import javax.swing.text.AttributeSet; 
        import javax.swing.text.BadLocationException; 
        import javax.swing.text.PlainDocument; 
         
        /**
        * Campo para a inserção de números com base em um formato.
        *
        * @author Dyorgio da Silva Nascimento
        */ 
        public class JNumberFormatField extends JTextField { 
            private static final long serialVersionUID = -7506506392528621022L; 
            private static final NumberFormat MONETARY_FORMAT = new DecimalFormat("R$ #,##0.00"); 
            private NumberFormat numberFormat; 
            private int limit = -1; 
         
            public JNumberFormatField(int casasDecimais) { 
                this(new DecimalFormat((casasDecimais == 0 ? "#,##0" : "#,##0.") + makeZeros(casasDecimais))); 
            } 
         
            public JNumberFormatField() { 
                this(MONETARY_FORMAT); 
            } 
         
            public JNumberFormatField(NumberFormat format) {// define o formato do 
                // número 
                numberFormat = format;// alinhamento horizontal para o texto 
                setHorizontalAlignment(RIGHT);// documento responsável pela formatação 
                // do campo 
                setDocument(new PlainDocument() { 
                    private static final long serialVersionUID = 1L; 
         
                    @Override 
                    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { 
                        String text = new StringBuilder(JNumberFormatField.this.getText().replaceAll("[^0-9]", "")).append(str.replaceAll("[^0-9]", "")).toString(); 
                        super.remove(0, getLength()); 
                        if (text.isEmpty()) { 
                            text = "0"; 
                        } else { 
                            text = new BigInteger(text).toString(); 
                        } 
                        super.insertString(0, numberFormat.format(new BigDecimal(getLimit() > 0 == text.length() > getLimit() ? text.substring(0, getLimit()) : text).divide(new BigDecimal(Math.pow(10, numberFormat.getMaximumFractionDigits())))), a); 
                    } 
         
                    @Override 
                    public void remove(int offs, int len) throws BadLocationException { 
                        super.remove(offs, len); 
                        if (len != getLength()) { 
                            insertString(0, "", null); 
                        } 
                    } 
                });// mantem o cursor no final 
                // do campo 
                addCaretListener(new CaretListener() { 
                    boolean update = false; 
         
                    @Override 
                    public void caretUpdate(CaretEvent e) { 
                        if (!update) { 
                            update = true; 
                            setCaretPosition(getText().length()); 
                            update = false; 
                        } 
                    } 
                });// limpa o campo se 
                // apertar DELETE 
                addKeyListener(new KeyAdapter() { 
                    @Override 
                    public void keyPressed(KeyEvent e) { 
                        if (e.getKeyCode() == KeyEvent.VK_DELETE) { 
                            setText(""); 
                        } 
                    } 
                });
                // formato 
                // inicial 
                setText("0"); 
                setCaretPosition(getText().length()); 
            
         
            /***
             * Define um valor BigDecimal ao campo**
             *
             * @param value
             */ 
            public void setValue(BigDecimal value) { 
                super.setText(numberFormat.format(value)); 
            
         
            /***
             * Recupera um valor BigDecimal do campo**
             *
             * @return
             */ 
            public final BigDecimal getValue() { 
                return new BigDecimal(getText().replaceAll("[^0-9]", "")).divide(new BigDecimal(Math.pow(10, numberFormat.getMaximumFractionDigits()))); 
            
         
            /***
             * Recupera o formatador atual do campo**
             *
             * @return
             */ 
            public NumberFormat getNumberFormat() { 
                return numberFormat; 
            
         
            /***
             * Define o formatador do campo** @param numberFormat
             */ 
            public void setNumberFormat(NumberFormat numberFormat) { 
                this.numberFormat = numberFormat; 
            } 
         
            /***
             * Preenche um StringBuilder com zeros** @param zeros*
             *
             * @return
             */ 
            private static final String makeZeros(int zeros) { 
                if (zeros >= 0) { 
                    StringBuilder builder = new StringBuilder(); 
                    for (int i = 0; i < zeros; i++) { 
                        builder.append('0'); 
                    
                    return builder.toString(); 
                } else { 
                    throw new RuntimeException("Número de casas decimais inválida (" + zeros + ")"); 
                } 
            } 
         
            /***
             * Recupera o limite do campo.** @return
             */ 
            public int getLimit() { 
                return limit; 
            
         
            /***
             * Define o limite do campo, limit < 0 para deixar livre (default) Ignora os
             * pontos e virgulas do formato, conta* somente com os números** @param
             * limit
             */ 
            public void setLimit(int limit) { 
                this.limit = limit; 
            } 
         
            // testes, pode ser removido 
            public static void main(String[] args) { 
                JFrame frame = new JFrame("Teste do campo"); 
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
                frame.setResizable(false); 
                frame.add(new JNumberFormatField(new DecimalFormat("R$ 0.00")) { 
                    {// limita a 4 
                        // caracteres 
                        setLimit(6); 
                    } 
                }); 
                frame.pack(); 
                frame.setLocationRelativeTo(null); 
                frame.setVisible(true); 
            
        }

Continue lendo

Ligar computador pela rede (WOL)

,

WAKE ON LAN

É uma função que pode ser usada para ligar um computador através da rede, através de um
comando dentro do seu programa.
Para isso é necessário ter alguns dados do computador que vai ser ligado.

É necessário saber o IP e o Endereço MAC.

Para obter esses dados, vá até o pc e no prompt de comando digite ipconfig /all
Anote o endress ip e o mac adress.

Caso mesmo assim não funcionar, ative a opção WOL da sua placa mãe para True
Entre no boot e econtre a opção WOL e marque como ligado. (Wake onBoard Lan)

Pronto !
=]

Obs.: Algumas placas mães por serem antigas não terá a opção wol no boot e por isso nao irá funcionar.
Acredito que de 2005 em diante funciona.. (testei) ;]

---

  1. import java.io.*;
    import java.net.*; 

    public class WakeOnLan {

    public void WOL() {final int PORT = 9;

    //Dados da maquina que vai ser ligada via rede
    String ipStr = "10.11.12.123"; //Aqui é o IP da maquina
    String macStr = "00:07:E9:93:18:EB"; //Aqui é o Endereço MAC

    try {

    byte[] macBytes = getMacBytes(macStr);

    byte[] bytes = new byte[6 + 16 * macBytes.length];


    for (int i = 0; i < 6; i++) {

    bytes[i] = (byte) 0xff;

    }


    for (int i = 6; i < bytes.length; i += macBytes.length) {

    System.arraycopy(macBytes, 0, bytes, i, macBytes.length);

    }


    InetAddress address = InetAddress.getByName(ipStr);

    DatagramPacket packet = new DatagramPacket(bytes,bytes.length, address, PORT);DatagramSocket socket = new DatagramSocket();


    socket.send(packet);

    socket.close();


    System.out.println("Comando WOL enviado");


    }catch (Exception e) { 
    System.out.println("Falha ao enviar comando " + e);

    System.exit(1); } 



    private static byte[] getMacBytes(String macStr) throwsIllegalArgumentException {byte[] bytes = new byte[6];


    String[] hex = macStr.split("(\\:|\\-)");


    if (hex.length != 6) {

    throw new IllegalArgumentException("Endereço MAC inválido");

    }


    try (for (int i = 0; i < 6; i++) {

    bytes[i] = (byte) Integer.parseInt(hex[i], 16);

    }catch (NumberFormatException e) {

    throw new IllegalArgumentException("Endereço Hexadecimal MAC inválido");

    }

    return bytes;

     }

    }

É isso ai.

;]

Continue lendo

sexta-feira, 27 de julho de 2012

Sistemas distribuídos com RMI

,
Sistemas distribuídos com RMI

Aprenda a criar programas com arquitetura Cliente/Servidor com 

RMI (Método de Invocação Remota)




Continue lendo

Uso do MySQL através do DB Designer

,

Uso do MySQL através do DB Designer

O DB Designer permite conectar com o banco de dados e, a partir dele, acessar os dados através das tabelas do modelo. É permitido também o sincronismo do modelo com o banco de dados, isto é, toda alteração feita no modelo é aplicada no banco de dados sem necessidade de geração de Script. Outra funcionalidade é a opção de fazer a engenharia reversa do banco de dados para o modelo. O uso desta opção não leva os relacionamentos entre tabelas, mas somente as tabelas. Outra facilidade da ferramenta é a geração de script para criação do banco de dados de forma automática.
A comunicação entre o DB_Designer e o MySQL para sincronismo, engenharia reversa e simples conexão é feita por intermédio de ODBC criado conforme a Figura 1. Nessa tela deve-se informar: nome do ODBC criado em Data Surce Name, nome do servidor, ou endereço IP em Serve, nome do usuário no MySQL em User, senha do usuário no MySQL em Password. Com esses parâmetros a opção de seleção do banco de dados fica disponível em Database e após as definições pode-se fazer teste de comunicação através do botão "Test".
Figura 1Figura 1.
Após a criação do ODBC é necessário que se defina, no DB_Designer, o link com o banco de dados a ser utilizado, conforme a Figura 2.
Figura 2.
Com a conexão estabelecida pode-se trabalhar com o DB_Designer e acessar o que for necessário no banco de dados, no MySQL, referente ao modelo de dados em uso.
Existem várias formas de acessar os dados em uma tabela a partir do DB Designer. Duas delas são: # clica-se com o botão da direita do mouse em cima do desenho da tabela e seleciona-se a opção "Edit Table Data". Os dados da tabela serão exibidos conforme a Figura 3. Nesta tela pode-se adicionar novas linha, excluir linhas ou alterar conteúdo de linhas da tabela. # na tela principal do DB_Designer, através da opção "Display/Query Mode", pode-se desenvolver comando na linguagem SQL e ter seu resultado ao lado, conforme a figura 4.
Figura 3Figura 3.
Figura 4Figura 4.
Se não for de interesse do projetista do banco de dados escrever o comando em linguagem SQL, o DB Designer disponibiliza uma outra opção que funciona com o uso do botão da direita do mouse em cima da tabela desejada e um pequeno arrasto para baixo. Aparecerão as opções de comandos de seleção de dados, inclusão, alteração e join entre tabelas. O DB Designer escreve o básico da estrutura e o técnico completa com os parâmetros necessários a complementação do comando.
O sincronismo entre o modelo de dados e o banco de dados é feito através da opção "Database/Database Synchronisation" da tela principal do DB Designer ou com o uso de um botão "Sync" na parte inferior da paleta de ferramentas, na parte esquerda da tela. Ele só é ativado através de ODBC e, quando executado, Figura 5, faz com que o banco de dados passe a ter a mesma estrutura física do modelo de dados conservando os dados existentes no banco de dados. Seu processo é feito de forma que o DB Designer compare a estrutura da tabela do modelo de dados com a do banco de dados e quando exista diferença entre elas seja executado um "Alter Table" no banco de dados para colocar a estrutura alterada.
Figura 5.Figura 5.
Acredito que muita gente não utiliza o DB Designer na sua potencialidade e deixa de tirar vantagens do software. Com o presente artigo muito DBA que perde um tempo enorme saindo de uma ferramenta para outra poderá tirar proveito das vantagens apresentadas e ganhar um tempo significativo.

Fonte: imasters
Continue lendo

quinta-feira, 26 de julho de 2012

Galeria de fotos com JQuery

,

Galeria de fotos com JQuery
Veja a DEMO deste tutorial > Como Criar Uma SUPER Galeria Com jQuery E CSS3

Código JQuery


$(document).ready(function(){
  //select all the a tag with name equal to modal
  $('#left_boxes img').click(function(e) {
    //Cancel the link behavior
    e.preventDefault();
    var imgID = $(this).attr('id');
    //Get the A tag
    var id = $(this).attr('src');
  
    //Get the screen height and width
    var maskHeight = $(document).height();
    var maskWidth = $(window).width();
  
    //Set heigth and width to mask to fill up the whole screen
    $('#mask').css({'width':maskWidth,'height':maskHeight});
    
    //transition effect    
    $('#mask').fadeIn(200);  
    $('#mask').fadeTo("slow",0.8);  
  
    //Get the window height and width
    
    var winH = $(window).height();
    var winW = $(window).width();
              
    //Set the popup window to center
    $("#dialog2").css('top',  winH/5-$("#dialog2").height()/5);
    $("#dialog2").css('left', winW/2-$("#dialog2").width()/2);
  
    //transition effect
    $("#dialog2").fadeIn(500); 
    $("#showImage").html('<img src="'+id+'" id="'+imgID+'" width="500" height="340" />');
  
  });
  
  // next
  $('#next').click(function(e) {
    
    var id = $('#showImage img').attr('id');
    
    if($("#left_boxes").find('img').length == id)
    id = 1;
    else
    id = parseInt(id)+parseInt(1);
    
    $("#showImage").html('');
    $("#showImage").html('<img src="'+id+'.jpg" id="'+id+'" width="500" height="340" />').fadeIn(700); 
    
  });
  
  // prev
  $('#prev').click(function(e) {
    
    var id = $('#showImage img').attr('id');
    
    if(id == 1)
    id = 12;
    else
    id = parseInt(id)-parseInt(1);
    
    $("#showImage").html('');
    $("#showImage").html('<img src="'+id+'.jpg" id="'+id+'" width="500" height="340" />').fadeIn(700); 
    
  });
  
  //if close button is clicked
  $('.window #hide').click(function (e) {
    //Cancel the link behavior
    e.preventDefault();
    $('#mask').hide();
    //$('#mask').hide();
    $('.window').hide();
  });    
  
  //if mask is clicked
  $('#mask').click(function () {
    $(this).hide();
    $('.window').hide();
  });      
  
});

Código HTML


<div style="height:750px;">
    
    <div id="left_bar">
      
      <div id="left_boxes">
      
        <!-- copy large image name in id of image without extension . We will get this id and show big image -->
        <div class="box"><img src="1.jpg" width="120" height="100" id="1" /></div>
        <div class="box"><img src="2.jpg" width="120" height="100" id="2" /></div>
        <div class="box"><img src="3.jpg" width="120" height="100" id="3" /></div>
        <div class="box"><img src="4.jpg" width="120" height="100" id="4" /></div>
        
        <div class="box"><img src="5.jpg" width="120" height="100" id="5" /></div>
        <div class="box"><img src="6.jpg" width="120" height="100" id="6" /></div>
        <div class="box"><img src="7.jpg" width="120" height="100" id="7" /></div>
        <div class="box"><img src="8.jpg" width="120" height="100" id="8" /></div>
        
        <div class="box"><img src="9.jpg" width="120" height="100" id="9" /></div>
        <div class="box"><img src="10.jpg" width="120" height="100" id="10" /></div>
        <div class="box"><img src="11.jpg" width="120" height="100" id="11" /></div>
        <div class="box"><img src="12.jpg" width="120" height="100" id="12" /></div>
        
      </div>
      
    </div>
    
    <!-- Image Holder Main -->
    <div id="dialog2" class="window">
     
      <img src="prev.png" id="prev" height="40" title="Previous" />
      <img src="next.png" id="next" height="40" title="Next" />
      
      <span id="showImage"></span>
      
      <img src="close.png" id="hide" height="40" title="Close" />
      
    </div>
    
    <div id="mask"></div> 
    
    <br clear="all" /><br clear="all" />
    
  </div>

Código CSS



html, body{
  border:0;
  outline:0;
  font-weight:inherit;
  font-style:inherit;
  background: url(bg.png) repeat;
  font-size:100%;
  font-family:inherit;
}
#border
{ 
  cursor:pointer;
  position:fixed;
  bottom:0px; 
  left:160px;
  z-index:999;display:none;
}

#controls {display:none;}

#controls #hide
{ 
  cursor:pointer;
  position:fixed;
  bottom:472px;  
  left:861px;
  z-index:999;
}

#controls #pause
{ 
  cursor:pointer;
  position:fixed;
  bottom:472px;  
  left:794px;
  z-index:999;
}

#prev{ float:left;}
#next{ float:right;}

#click
{ 
  cursor:pointer;
  position:fixed;
  bottom:0; 
  left:0px;
  z-index:999;
}

#mask {
  position:absolute;
  left:0;
  top:0;
  z-index:9000;
  background-color:#fff;
  display:none;
}

#left_bar 
{
  top:80px; 
  left:25%;
  height:340px;
  width:545px;
  padding:10px;
  
  position: relative;
  overflow: auto;
  
  -moz-background-clip: padding;     /* Firefox 3.6 */
  -webkit-background-clip: padding;  /* Safari 4? Chrome 6? */
  background-clip: padding-box;      /* Firefox 4, Safari 5, Opera 10, IE 9 */
  border: 15px solid rgba(0,0,0,0.3);
  -webkit-border-radius: 40px;
  -moz-border-radius: 40px;
  border-radius: 40px; 
}

#left_bar  .box{
  height:110px;
  float:left;
  margin-bottom:3px;
  margin-left:5px;
  width:130px;
}
#imagePlacer{
  width:608px;
  height:413px;
  position:fixed;
  bottom:12px; 
  background: url(load.gif) center center no-repeat #000000;
  padding:5px;
  left:160px;
  display:none;
  z-index:999;
}

#captions span{ display:none; }

.box img{-webkit-border-radius: 12px;;border-radius: 12px; -moz-border-radius: 12px; margin:4px 0 0 4px; cursor:pointer}

.box img:hover {filter:alpha(opacity=50);  
  opacity: 0.8; /*width:94px; margin-left:7px;margin-top:7px;}*/
}

#dialog2 {
/* background:url(images/notice.png) no-repeat 0 0 transparent; */
  width:500px; 
  height:360px;
  padding:50px 0 20px 25px;
}

.window img{ cursor:pointer;}

.window {
  position:absolute;
  left:0;
  top:0;
  width:500px;
  height:360px;
  display:none;
  z-index:9999;
  padding:20px;
}

#right_bar  .box{
  background: #000;
  height:110px;
  margin-bottom:3px;
  width:110px;
}

#content {
  width: 750px;
  margin: 0 auto;
  background:#D1DFF3;
  margin-bottom: 25px;font-family:Arial,Helvetica,sans-serif;
  font-size:11px;
  padding: 10px;
  text-align:justify;
}

a.link{ 
  bottom:10; left:804px;position:fixed;
  z-index:999; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px
  }
Download do código usado neste tutorial > Como Criar Uma Super Galeria Com jQuery e CSS3
Continue lendo
 

Java Aberto Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger