Blogger templates

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

Visitas

quarta-feira, 29 de agosto de 2012

segunda-feira, 27 de agosto de 2012

Conectando MySQL em java

,
Primeiramente é necessário criar um classe de conexão que vai servir como molde para o Objeto do nosso banco de dados.

Classe

Também é necessário adicionar no seu projeto a biblioteca de conexão do MySQL Clique aqui para baixar
Continue lendo

Passando valores de um JFrame para outro

,
Código Fonte de como passar valores de um JFrame para outro JFrame
Utilizando Listener


senha: javaaberto.blogspot.com.br

Continue lendo

segunda-feira, 20 de agosto de 2012

Alguns problemas ao criar arquivo Jar

,
Olá galera do java aeberto, tenho algumas dicas pra vc's

Deparei com um problema, ao criar um arquivo .JAR no Netbeans atraves da função Limpar e Construir, reparei as seguintes falhas:

- Cria outras pastas como a Lib (bibliotecas) fora do arquivo Jar, o ideal seria criar tudo dentro do arquivo.

- (pior Falha) Ao criar o arquivo Jar, apos a sua distribuição um Cracker pode obter o seu código fonte, atraves da Engenharia Reversa. (Testei com meu arquivo e funcionou)

Então, vai alguns links para solucionar o problema:

Criar Jar contendo todos arquivos necessarios sem a pasta Lib
http://preclog.blogspot.com.br/2010/03/criando-jar-no-netbeans-sem-pasta-lib.html 

Cria Ofuscador de código Anti-engenharia Reversa
http://proguard.sourceforge.net/



Continue lendo

quinta-feira, 16 de agosto de 2012

Ler arquivo de Configuração (config .ini)

,

Por diversos motivos pode ser necessário ter um arquivo com parâmetros de configuração para a sua aplicação Java e esse arquivo de configuração além de ser modo texto não seria performático se fosse adotado XML. Uma opção mais viável seria a adoção de um arquivo texto com a seguinte estrutura:
identificador = valor
Com o arquivo nessa estrutura podemos utilizar o seguinte para um teste rápido (colocar o nome do arquivo de config.ini):



****** Arquivo de configurações ********
inicial=1452
final=acabou
param1=Teste de leitura
Agora com poucas linhas de código iremos ler os valores necessários e imprimir na saida (console) da IDE (no caso estou utilizando o Netbeans, mas até um bloco de notas serve):
Viu a simplicidade? Basta declar uma String com o nome e extensão do arquivo e uma variável do tipo Properties, em seguida carregas i stream utilizando o método load() e obtemos os valores por métodos getProperty().
A saída da execução do software deverá ser essa:
Iniciando processo de leitura de configurações:

1452
Teste de leitura
acabou

Finalizando leitura!
Agora a sua aplicação Java pode conter valores e demais informações de forma dinâmica, não vai ser preciso abrir o software para alterar um simples parâmetro de configuração e depois compilar tudo de novo, basta alterar o valor no arquivo de configuração e pronto.
Fonte: viamais
Continue lendo

sexta-feira, 10 de agosto de 2012

Criando Stub em RMI

,

Como criar o arquivo Stub em RMI

Olá galera do java aberto, segue abaixo uma dica de como criar um arquivo Stub para seu servidor rmi.

O arquivo Stub, serve para o servidor feito em RMI em Java, organizar e servir o computador com os métodos Remote do seu servidor, sem ele o seu servidor não irá funcionar, pois não saberá onde pegar os pedidos de métodos enviado pelo Cliente.

Para criar o arquivo, pegue a sua classe implementada com os métodos da interface que são os métodos que o servidor vai executar, também a mesma interface, copie e cole dentro do diretório Bin do seu JDK java.

Feito isso, abra o prompt de comando via cmd pelo executar do windows.
Vá até o diretório do seu bin do seu jdk.


cmd > cd seuriretorio\jdk\bin\
cmd > javac <NomeDaClasse>.java (irá compilar sua classe)
cmd > start rmiregistry (inicia o registro do stub)
cmd > rmic <sua classe> (cria o arquivo stub)
cmd > java -Djava.security.policy= <SeuArquivoPolicy>.policy <NomeDaClasse> (arquivo de politica de acesso ao servidor)

O arquivo Policy é um arquivo de configuração de segurança de acesso ao servidor, assim você pode
configurar seu servidor detalhando e restringindo determinada porta de seu firewall para acessa-lo.

Não vou entrar em detalhes, mas abaixo vou criar um passo-a-passo de um arquivo Policy genérico que não restringe porta de acesso ao seu servidor, ou seja, qualquer um pode acessar. Evita erros, é bom para testes.

Abra um editor de texto - como bloco de notas ou word pad.

Copie e cole o código abaixo

grant{
permission java.security.AllPermission;
};

Salve como <NomeDesejado>.policy
Tipo -> todos arquivos

pronto! 
Até o próximo artigo..






Continue lendo

quarta-feira, 8 de agosto de 2012

JOptionPane personalizado

,

Mudar a formatação das caixas de diálogo do JOptionPane


  1. import java.awt.Font;
  2. import javax.swing.*;
  3. import javax.swing.plaf.FontUIResource;
  4. public class OptionPaneFonts {
  5. public static void main(String[] args) {
  6. UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("Times New Roman", Font.BOLD, 18))); // Aqui você muda o nome e tamanho da fonte.
  7. JOptionPane.showMessageDialog(null, "Resultado da nova fonte", "Nova fonte", JOptionPane.INFORMATION_MESSAGE);
  8. UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("SanSerif", Font.ITALIC, 18))); // Aqui você muda o nome e tamanho da fonte.
  9. JOptionPane.showMessageDialog(null, "Resultado da nova fonte", "Nova fonte", JOptionPane.INFORMATION_MESSAGE);
  10. }
  11. }
Continue lendo

JList com CheckBox

,
JList com Checkbox

exemplo simples

Classe

/*
 Este exemplo mostra como criar uma JList
 contendo JCheckBoxes. Aprenda a marcar os
 itens e obter quais itens estão marcados.
*/


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class Estudos extends JFrame{

  JList lista;

  public Estudos() {

    super("A classe JList");

    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));

    // Cria a JList  
    lista = new JList();

    // Define o renderizador de células  
   lista.setCellRenderer(new CheckBoxCellRenderer());

    // Define os valores da lista    Object[] cbArray = new Object[4];
    cbArray[0] = new JCheckBox("Goiânia");
    cbArray[1] = new JCheckBox("Brasília");
    cbArray[2] = new JCheckBox("Barra do Garças");
    cbArray[3] = new JCheckBox("Curitiba");

    // Atribue os itens à lista    lista.setListData(cbArray);

    // Define a seleção única para a lista    lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    // Aqui nós permitimos que as checkboxes sejam marcadas
    // ou desmarcadas com a barra de espaço
  
 lista.addKeyListener(new KeyAdapter(){
      public void keyPressed(KeyEvent e){
        if(e.getKeyCode() == KeyEvent.VK_SPACE){
          int index = lista.getSelectedIndex();
          if(index != -1){
            JCheckBox checkbox =
              (JCheckBox) lista.getModel().getElementAt(index);
            checkbox.setSelected(!checkbox.isSelected());
            repaint();
          }
        }
      }
    });

    // Aqui nós permitimos que as checkboxes sejam marcadas
    // ou desmarcadas com o mouse
   
lista.addMouseListener(new MouseAdapter(){
      public void mousePressed(MouseEvent e){
        int index = lista.locationToIndex(e.getPoint());
        if(index != -1){
          JCheckBox checkbox = (JCheckBox) lista.getModel().getElementAt(index);
          checkbox.setSelected(!checkbox.isSelected());
          repaint();
        }
      }
    });

    // Um botão que permite obter os itens marcados   
JButton btn = new JButton("Obter itens marcados");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          String itens = "";
          /*
           * Loop feito com FOR, para fazer uma varredura
           * para obter quais itens estao marcados ou não
           */
          for(int i = 0; i < lista.getModel().getSize(); i++){
            JCheckBox checkbox = (JCheckBox) lista.getModel().getElementAt(i);
              if(checkbox.isSelected())
                itens += "Item com índice " + i +
                  " está marcado\n";
              else
                itens += "Item com índice " + i +
                  " está desmarcado\n";
          }
          JOptionPane.showMessageDialog(null,
            itens);
        }
      }
    );

    // Adiciona a lista à janela   
    c.add(new JScrollPane(lista));

    // Adiciona o botão à janela    c.add(btn);
    setSize(350, 250);
    setVisible(true);
  }

  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

// Classe personalizada que permite que os itens
// da lista sejam exibidos como 

JCheckBoxesclass
CheckBoxCellRenderer implements ListCellRenderer{
  Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
  public Component getListCellRendererComponent(
       JList list, Object value, int index,
       boolean isSelected, boolean cellHasFocus){
    JCheckBox checkbox = (JCheckBox) value;
    checkbox.setBackground(isSelected ?
      list.getSelectionBackground() : list.getBackground());
    checkbox.setForeground(isSelected ?
      list.getSelectionForeground() : list.getForeground());
    checkbox.setEnabled(list.isEnabled());
    checkbox.setFont(list.getFont());
    checkbox.setFocusPainted(false);
    checkbox.setBorderPainted(true);
    checkbox.setBorder(isSelected ? UIManager.getBorder(
       "List.focusCellHighlightBorder") : noFocusBorder);
    return checkbox;
  }
}
Continue lendo

SQL Server - Tabela temporária no banco de dados

,

 


Como utilizar e criar tabelas temporárias no SQL Server  

Sabe aquela situação onde você precisa por exemplo, copiar os dados de uma determinada tabela para uma "tabela temporária", faz os ajustes necessários, retorna os dados da tabela temporária para a tabela principal e aí elimina a tabela?

Pois bem, saiba que o SQL Server permite que você crie uma tabela temporária, ou seja, a tabela existirá somente enquanto a conexão estiver ativa com o banco de dados. Ao encerrar a conexão a tabela automaticamente é eliminada!

Além disso a tabela temporária não fica no database de produção. Ela sempre é criada no database tempdb e poderá ser visualizada apenas pelo usuário que efetuou a conexão.
Vejamos um exemplo:
Considere a seguinte tabela:
CREATE TABLE LOC_LOCACAO (
LOC_IN_CODIGO INT NOT NULL CONSTRAINT LOC_PK_LOCACAO PRIMARY KEY,
LOC_DT_LOCACAO SMALLDATETIME,
LOC_RE_VALOR NUMERIC(12,2)
);
Inserindo alguns registros:
SET DATEFORMAT YMD
Define a data no formato YMD, evitando erro no SQL em Português
insert into LOC_LOCACAO values (1,'2009-07-06',3.50);
insert into LOC_LOCACAO values (2,'2009-07-06',4.50);
insert into LOC_LOCACAO values (3,'2009-07-07',4.50);
Digamos que você precisa copiar os dados para uma tabela temporária que iremos chamar de LOC_LOCACAOTEMP
Temos duas opções:
1. Criar a tabela temporária durante o próprio comando SELECT/INSERT:

SELECT
LOC_IN_CODIGO, LOC_DT_LOCACAO, LOC_RE_VALOR
INTO #LOC_LOCACAOTEMP
FROM LOC_LOCACAO
Observe que o nome da tabela temporária é iniciado pelo caractere #.
2. A outra opção seria criar a tabela na "unha":

CREATE TABLE #LOC_LOCACAOTEMP (
LOC_IN_CODIGO INT NOT NULL,
LOC_DT_LOCACAO SMALLDATETIME,
LOC_RE_VALOR NUMERIC(12,2)
);
E depois rodar o seu comando de insert, por exemplo:
INSERT INTO #LOC_LOCACAOTEMP VALUES (7,'2008-06-30',3.50);
Para visualizar os registros da tabela temporária:
SELECT * FROM #LOC_LOCACAOTEMP
ATENÇÃO! Observe que essa tabela existe apenas para o usuário da atual conexão.
Tente abrir o SQL Server Management Studio Express em uma outra janela ou outra máquina e rodar o seguinte comando:
SELECT * FROM #LOC_LOCACAOTEMP
Irá dar uma mensagem de erro avisando que a tabela não existe!
"Poxa! Mas eu queria criar uma tabela temporária que pudesse ser compartilhada em outra estação... Tem como?"
Sim! É possível criar uma tabela temporária compartilhável, ou como ela é chamada no SQL de TEMP GLOBAL TABLE.
Vejamos como criar a tabela temporária global utilizando o mesmo exemplo já visto:
CREATE TABLE ##LOC_LOCACAOTEMP
( LOC_IN_CODIGO INT NOT NULL,

LOC_DT_LOCACAO SMALLDATETIME,
LOC_RE_VALOR NUMERIC(12,2)
);
Notou algo diferente? Não?

A única diferença é que a tabela irá iniciar por dois caracteres #.
Não esqueça: Assim que a conexão que a criou se desconectar a tabela será destruída!

Fonte: oficinadanet
Continue lendo

SQL Server - Data Base Tunning Advisor

,

O Database Engine Tuning Advisor é uma das novas features do SQL Server 2005, ele analisa arquivos de carga de trabalho e propõe alterações no banco de dados, a fim de melhorar seu desempenho geral.

Para as alterações propostas, o Tuning Advisor também mostra o impacto que causará cada modificação.

Entre as suas capacidades, estão:
  • Query Optimazer, para propor índices e visões indexadas;
  • Recomendação de particões;
  • Análise de impacto das recomendações;
  • Fornecimento de informações sobre o número de consultas e o número de índices.

Opções de ajuste:
  • Quais objetos o Tuning Advisor poderá recomendar;
  • Quais partições analisará;
  • Quais estruturas serão mantidas no banco de dados;
  • Espaço máximo para recomendações;
  • Número máximo de columas por índice.


 

Criando analises com o DTA


Para iniciar o DTA, vá em StartAll ProgramsMicrosoft SQL Server 2005Performance ToolsDataBase Engine Tunning Advisor.
http://www.oficinadanet.com.br//imagens/coluna/2606/iniciar.png


Quando o programa for iniciado, clique em File/New Connection.
http://www.oficinadanet.com.br//imagens/coluna/2606/newconection.png


Aparecerá a tela de conexão para qual servidor você deseja criar a análise.
http://www.oficinadanet.com.br//imagens/coluna/2606/autenticadta.png

Obs: Para o exemplo será usado um ambiente de testes.

O servidor será mostrado no canto superior direito da tela, clique com o botão direito e escolha a opção New Session.
http://www.oficinadanet.com.br//imagens/coluna/2606/newsession.png


A seguinte tela será mostrada:

http://www.oficinadanet.com.br//imagens/coluna/2606/td_teladta.png



Clique na guia Tunning Options e será mostrado a seguinte tela:
http://www.oficinadanet.com.br//imagens/coluna/2606/td_tunningoptions.png


Physical Design Structure(PDS) to use in database: Esta opção avalia o que a Engine do DTA irá analisar referente a objetos de design na estrutura do banco(índex,índex views e etc). A opção de Índex views é desabilitada no SQL Server STD.

Partitioning strategy to employ: A opção de particionamento, verifica se existem objetos que podem ser particionados e avalia o particionamento que já existente. Disponível somente na versão Enterprise do SQL Server.

Physical Design Structure(PDS) to keep in database: Avalia a estrutura fisica do banco, abalia se existem índices clustereds e nonclustereds devem ser deletados(ele não deleta os indices), ou se existe algo divergente na no modelo como um todo. O padrão é Keep All existing PDS.

Voltando a guia General, aonde:
  • Session Name: Nome da Sessão
  • WorkLoad: A origem de ondes virão os dados que serão analisados(no caso do profiler o mesmo pode ser um arquivo ou uma tabela)
  • DataBase for WorkLoad Analysis: Aonde serão gaurdadas as analises temporarias.
  • Select DataBase and tables to tune: Lista de banco de dados e de tabelas que serão parte da analise. (sempre coloque os bancos de dados que [*] foram filtrados no profiler)


Coloque o nome no profiler e escolha o caminho aonde está o arquivo de trace do profiler. Ao clicar no Radio Button File, clique no binóculo a esquerda e será aberta a tela do Windows. Escolha o profiler que deseja analisar.
http://www.oficinadanet.com.br//imagens/coluna/2606/td_selecionandoprofiler.png

Clique em abrir.

Caso o trace tenha sido guardado em uma tabela, marque o Radio Button Table, clique no binóculo a esquerda e será aberta a tela de conexão:
Escolha qual banco, schema e tabelas estão os profilers que foram armazeandos.

Obs: O login qual abriu a sessão no DTA deve ter acesso as tabelas que estão os traces, caso contrário, uma mensagem de erro será retornada.
http://www.oficinadanet.com.br//imagens/coluna/2606/selecionandotabela.png


O preenchimento deve ficar parecido com a tela abaixo:
http://www.oficinadanet.com.br//imagens/coluna/2606/td_teladta.png


Clique no botão Start Analysis. Após clicar em Star Analysis, uma tela de progresso será exibida.
http://www.oficinadanet.com.br//imagens/coluna/2606/td_progress.png


Na guia recomendações, é apresenta a porcentagem de melhoria da análise.
http://www.oficinadanet.com.br//imagens/coluna/2606/finalizandoprocesso.png


No menu Actions aparecerá a opção de aplicar as recomendações ou savá-las.
Clique em Save Recommendations
http://www.oficinadanet.com.br//imagens/coluna/2606/aplicandorecomendacoes.png

Será gerado um arquivo .sql com as recomendações.

Fonte: oficinadanet
Continue lendo

(Java Jr - Parte VI ) - Encapsulamento

,

Encapsulamento é a técnica de transformar os objetos que compõem uma aplicação em verdadeiras caixas-pretas. De fato, se pensarmos em termos de informática, é possível para um usuário comum usar todas as funcionalidades de uma impressora sem nem mesmo entender seu funcionamento interno. Imagine o desastre que seria se todos os usuários resolvessem abrir suas impressoras para investigar o que há dentro delas.

Da mesma forma, ao contruir uma classe, devemos fazê-lo de forma que o usuário desta classe tenha acesso apenas aos métodos que permitem ler informações da classe ou fornecer os dados necessários para sua correta operação. Dados relativos ao funcionamento interno da classe devem permanecer ocultos e acessíveis somente aos métodos da própria classe.

O encapsulamento deve ser aplicado de forma a permitir que alterações na estrutura interna de uma classe não prejudique o funcionamento do código externo que a usa. Veja um exemplo:

 
  class Pedido{
    //variavel local da classe
    private int codigoCliente;

    //metodo set
    public void setCodigoCliente(int codigo){
       this.codigoCliente = codigo;//altera variavel local pelo parametro vindo
    }

    //metodo get
    public int getCodigoCliente(){
      return codigoCliente;//retorna o valor do variavel local
    }

  }




Fonte: 
arquivodecodigos


Continue lendo

quinta-feira, 2 de agosto de 2012

Pega codigo selecionado de um JTable

,

Pega codigo selecionado de um JTable

Gente aqui eu criei uma classe onde eu pego o valor da primeira coluna de um JTable;
Eu posso usar isso pra fazer consulta, excluir, editar o cliente selecionado da minha tabela.
Como funciona, o usuario clica na tabela onde esta o "cliente" que deseja editar e automaticamente o objeto criado
vai acionar o método da classe que pegará o valor da coluna 1, com isso voce pode pegar esse valor e procurar no seu banco
de dados para poder editar esse registro.

Antes de tudo eu devo criar um objeto;
  1. //objeto
  2. clsComandosJTable cmdJTable = new clsComandosJTable();

Pega o dado selecionado;

  1. //Aqui ele pega o dado da linha selecionado da minha tabela, com retorno inteiro
    //por isso que tenho que converter para String
  2. jtTextField1.setText(String.valueOf(cmdJTable.PegaRegistro(jTable)));





Continue lendo
 

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