Mostrando postagens com marcador java. Mostrar todas as postagens
Mostrando postagens com marcador java. Mostrar todas as postagens

sexta-feira, 21 de setembro de 2012

Calculando Financiamento com Prestações Fixas.

Pra quem está procurando carro e sempre se ve enganado por cálculos que nunca batem, vou aqui postar o código da calculadora que eu fiz em Java. Ela obedece o mesmo cálculo feito pelo banco central do brasil para cálculo de financiamento com prestações fixas usando o sistema francês de amortização (Tabela PRICE - Tabela Price).

Abaixo segue o código da aplicação Java:

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.DecimalFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;


public class Calculadora extends JFrame implements MouseListener{

 private double valor_financiado;
 private double juros;
 private double parcela;
 private double meses;
 private JTextField tf_valor_financiado;
 private JTextField tf_juros;
 private JTextField tf_parcela;
 private JTextField tf_meses;
 private JButton btnCalcula;
 
 public Calculadora() {
  super();
  this.setAlwaysOnTop(true);
  this.setTitle("Calculadora");
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setLocationByPlatform(true);
  this.setLayout(new GridLayout(5,2));
 }
 
 
 public void initUI(){
  this.add(new JLabel("Valor Financiado"));
  this.tf_valor_financiado = new JTextField();
  this.add(this.tf_valor_financiado);  
  this.add(new JLabel("Juros (% a.m) Ex.: 1,13"));
  this.tf_juros = new JTextField();
  this.add(this.tf_juros);
  
  this.add(new JLabel("Meses"));
  this.tf_meses = new JTextField();
  this.add(this.tf_meses);
  
  this.add(new JLabel("Parcela"));
  this.tf_parcela = new JTextField();
  this.tf_parcela.setEditable(false);
  this.tf_parcela.setForeground(Color.red);
  
  this.add(this.tf_parcela);
  
  this.btnCalcula = new JButton("Calcular");
  this.btnCalcula.addMouseListener(this);
  this.add(this.btnCalcula);
  this.pack();
  this.setResizable(false);
  this.setVisible(true);
  
 }
 
 public void calcula(String valor,String juros, String meses){
  if(valor.equalsIgnoreCase("") || juros.equalsIgnoreCase("") || meses.equalsIgnoreCase("")){
   JOptionPane.showMessageDialog(this, "Você precisa informar os valores corretamente!", "Atenção", JOptionPane.INFORMATION_MESSAGE);
  }else{
   valor = valor.replace(",", ".");
   this.valor_financiado = Double.valueOf(valor);
   juros = juros.replace(",", ".");
   this.juros = Double.valueOf(juros);
   this.meses = Double.valueOf(meses);
   DecimalFormat df = new DecimalFormat("0.00");
   
   this.parcela = this.valor_financiado/((Math.pow((this.juros/100)+1, this.meses)-1)/(Math.pow((this.juros/100)+1, this.meses)*(this.juros/100)));
   this.tf_parcela.setText("R$ "+df.format(this.parcela));
  }
  
 }
 
 public static void main(String[] args) {
  Calculadora calc = new Calculadora();
  calc.initUI();
 }


 @Override
 public void mouseClicked(MouseEvent e) {
  this.calcula(this.tf_valor_financiado.getText(), this.tf_juros.getText(), this.tf_meses.getText());
  
 }


 @Override
 public void mousePressed(MouseEvent e) {
  // TODO Auto-generated method stub
  
 }


 @Override
 public void mouseReleased(MouseEvent e) {
  // TODO Auto-generated method stub
  
 }


 @Override
 public void mouseEntered(MouseEvent e) {
  // TODO Auto-generated method stub
  
 }


 @Override
 public void mouseExited(MouseEvent e) {
  // TODO Auto-generated method stub
  
 }
 
 
}

Para baixar o aplicativo: calculadora.jar

quinta-feira, 8 de março de 2012

JBoss Seam - Preparando o ambiente de desenvolvimento.


Este post inicia uma série de screencasts que eu pretendo fazer relacionados ao desenvolvimento de software.

No primeiro screencast mostro como preparar o ambiente para se desenvolver uma aplicação para web utilizando o JBoss SEAM. Espero que gostem! Não esqueçam de deixar suas críticas ou dúvidas.
Abraços,
Douglas Pinheiro




JBoss SEAM - Aula 01 - Preparando o ambiente de desenvolvimento. from dougpinheiro on Vimeo.

segunda-feira, 19 de setembro de 2011

FormCreator - Solução Java para criação rápida de formulários.

Prezados,
    Há muito que vejo alguns amigos reclamarem do trabalho que dá construir toda uma estrutura de formulário para que sejam usados apenas por 1 dia ou 2, como é o caso, por exemplo, de uma inscrição em um curso qualquer que precisa ter o cadastro o mais rápido possível no ar. Na maioria das vezes, o custo desse tipo de implementação é mais alto que o benefício. Então, pensando nisso, fiz um programinha em Java que gera uma estrutura de cadastro, gravação em banco e visualização dos dados cadastrados. O programa basicamente gera um arquivo database.db que será o nosso banco de dados, um jsp cadastro.jsp que será a página onde o usuário irá cadastrar os dados, um jsp grava.jsp que gravará todas as informações informadas no nosso banco database.db, o jsp resposta.jsp que mostrará se os dados foram gravados com êxito e por fim um jsp visualizacao.jsp que proporcionará a visualização dos dados gravados. O FormCreator 1.0 ainda precisa de muitas inclusões, mas para um formulário simples já resolve muitos problemas e agiliza a criação do seu formulário. Pois bem, vamos ao passo-a-passo:
    Primeiramente, devemos rodar o formcreator_1_0.jar, através do prompt de comando com a seguinte instrução: java -jar formcreator_1_0.jar <local-onde-serão-gerados-os-arquivos> Coluna1 [<Coluna2>] ... [<ColunaN>]. Ou seja, passamos como parametro o local onde serão criados os arquivos e em seguida o nome dos campos que gostariamos que fossem criados. Exemplo que vou usar aqui:
java -jar formcreator_1_0.jar C:\LOCAL\WebTeste\WebRoot Nome Email EstadoCivil ConfirmaPresenca Observacao Bairro
    Perceba que o local que eu passei foi a pasta root de um projeto WEB. É imprescindível que os arquivos sejam criados na sua pasta de destino final, pois os jsps usaram a informação do local físico tanto para gravar como para visualizar as informações. Feito isto, abrirá uma tela do Java perguntando informações sobre os tipos de campos que você deseja criar. No exemplo usado aqui, o sistema pergunta o tipo de campo para Nome, e nós informamos 1, para a opção Texto. Será informado o tamanho desse campo Nome como 20; Na sequência, para o campo Email também será informado o tipo 1 (Texto) e tamanho 30. Para o campo EstadoCivil escolheremos o tipo Group, depois informaremos o número de opções para EstadoCivil que neste caso foi 3. Dessa forma, para cada uma das três opções, informaremos o nome da opção que aqui foram: Casado, Solteiro, Separado. Já para ConfirmaPresença informamos apenas o tipo CheckBox; Para Observacao iremos informar o tipo Paragrafo, em seguida, informaremos o número de linhas e o número de colunas para a caixa de texto. Por fim, para o campo Bairro, informaremos o tipo Lista que pede que nós informemos o número de opções da lista de bairros e em seguida informamos o nome de cada bairro.
    Pronto, tendo feito isso, todos os arquivos serão gerados e já poderão ser chamados pelo projeto WEB em qual foi criado, lembrando que o projeto WEB que irá usar essas arquivos deverá ter em seu Buildpath a biblioteca do banco de dados SQLite. Para obter esse jar do SQLite, basta clicar aqui
    Com o tempo vou aprimorar essa ferramenta para receber outros tipos de dados, como arquivos e etc...
Abraços!
  
Douglas C. Pinheiro
Email: dougcpinheiro@yahoo.com

sexta-feira, 6 de novembro de 2009

Impressão Direta de PDF com Java

Neste exemplo, imprimimos um arquivo PDF direto do sistema. Para isso, basta informar uma parte ou todo o nome da impressora e indicar a localização do arquivo. Minha impressora é a printer001 e o meu arquivo como podem ver é o c:/teste.pdf. Deixem seus comentários.

package printpdf;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;

public class PrintPDFFactory {

    private static PrintService impressora; 

    public void printPDF(File f){

        try{
            DocFlavor dflavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
            PrintService[] impressoras = PrintServiceLookup.lookupPrintServices(dflavor, null);
            for(PrintService ps : impressoras){
                System.out.println("Impressora Encontrada: "+ps.getName());
                if(ps.getName().contains("printer001")){
                    System.out.println("Impressora Selecionada: "+ps.getName());
                    impressora = ps;
                    break;
                }
            }
            DocPrintJob dpj = impressora.createPrintJob(); 
            FileInputStream fis = new FileInputStream(f);
            byte[] buffer = new byte[fis.available()];
            int buff = 0;
            while((buff = fis.available()) != 0){
                fis.read(buffer, 0, buff);
            }
            System.out.println(new String(buffer));
            InputStream stream = new ByteArrayInputStream(buffer); 
            DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; 
            Doc doc = new SimpleDoc(stream, flavor, null); 
            dpj.print(doc, null);
           
        }catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        PrintPDFFactory pdffactory = new PrintPDFFactory();
        pdffactory.printPDF(new File("c:/teste.pdf"));
    }
}

terça-feira, 9 de dezembro de 2008

Transformando Arquivos PDF em Imagens

O código abaixo é bem simples e serve para gerar imagens a partir de um arquivo pdf.

package pdf2image;

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jpedal.PdfDecoder;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class PdfToImage {

    public PdfToImage() {
    }

    public static void main(String[] args) {
        try{
            PdfDecoder decode_pdf = new PdfDecoder(true);
            decode_pdf.useHiResScreenDisplay(true);

            String pdfToDecode = "c:/SeuArquivoPdf.pdf";
            decode_pdf.openPdfFile(pdfToDecode);

            int imageHeight = 1268;
            int pageFromPDF = 1;
           
            BufferedImage image_to_save = decode_pdf.getPageAsThumbnail(pageFromPDF, imageHeight);
           
             /* Caso queira a imagem em escala de cinza, remover este comentário
BufferedImage bi = new BufferedImage(image_to_save.getWidth(), image_to_save.getHeight(),                 BufferedImage.TYPE_BYTE_GRAY);
                    Graphics2D g2 = (Graphics2D) bi.getGraphics();
                    g2.drawImage(image_to_save, 0, 0, image_to_save.getWidth(), image_to_save.getHeight(), null);
            */

            System.out.println(bi);


            saveImage(bi, .9f, "c:/test2.jpg");

        }
        catch(Exception e){
            e.printStackTrace();
        }
        new PdfToImage();

    }
    public static void saveImage(BufferedImage image, float quality, String fileName){
        try{
            FileOutputStream fos = null;

            fos = new FileOutputStream(fileName);


            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
            JPEGEncodeParam param = JPEGCodec.getDefaultJPEGEncodeParam(image);
           
            param.setQuality(quality, true);
            encoder.encode(image, param);

            fos.flush();
            fos.close();
        }
        catch(IOException ioe){
            ioe.printStackTrace();
        }
    }

}

Para receber a lib do JPEDAL, enviar email para dougcpinheiro@yahoo.com