Imprimindo um JtextField

Colegas de Fórum:

Gostaria de uma ajuda para finalizar o meu programa.

Eu elaborei um programa de cadastro e localização de dados pessoais. uma aplicação desktop.

Só falta 1 coisa para eu terminar o programa e foi bem aonde eu “TRAVEI”

IMPRESSÃO de campos.

Exemplo: Eu tenho uma tela, a qual faz a busca no banco de dados e me retorna, nome, funçao, email, empresa e outros dados, esses dados vem dentro de um jTextField,
minha necessidade: preciso q qdo clicar em imprimir, ele imprima uma etiqueta, tipo um cracha, com os dados da pessoa, porem nessa etiqueta nao saem todos os campos, apenas os campos: Nome, Empresa.
porém qdo imprimo aparece a etiqueta, tudo posicionado corretamente, só q fica:
“Nome: null”
“Empresa: null”

minha duvida é como faço pra pegar os campos preenchidos na tela e imprimir na etiqueta???

Abraço a Todos

O que você está usando para imprimir? Poste o código aqui. E o método getText() dos JTextField’s? Não ajuda?

não sei a maneira como você pode estar recebendo isso do banco, mas se ele esta apresentando null, é porque a variavel nome e empresa devem estar setados como null.
Se você quer saber como fazer com que o o cracha seja impresso em JTextArea crie um método onde você passe um individuo com as variaveis que vc desejar e faça ser impresso na tela por meio da classe que vc quer usar.(não precisa ser o TextArea ,saca?)
por ex:

private JTextArea cracha= new JTextArea();

public void imprimirCracha(Individuo individuo){

cracha.setText("Nome “+individuo.getNome+”\nEmpresa "+individuo.getEmpresa);

}

mas como disse o nosso amigo marco, é melhor que vc poste o código aqui para nós tentarmos entender melhor seu pro…
:slight_smile:

http://pastebin.com/m13ce74ca / Código Java Impressão Main (alt+w)

package Cadastro; // importará para a main

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

import com.sun.org.apache.xml.internal.resolver.helpers.PublicId;

import java.security.PublicKey;
import java.sql.;
import java.util.StringTokenizer;
import java.awt.print.
;

public class MontaTela extends JPanel
{

    public  JPanel telapanel;
   public  JLabel lCodigo,lNome,lIdade,lEndereço,lCEP,lEmail,lFunção;
   public  JTextField TCodigo,TNome,TIdade,TEndereço,TCEP,TEmail,TFunção;
   // public  JPasswordField tSenha;  (Não exibe letras no campo senha)
   public  JButton consultar,adicionar,alterar,limpar,fechar,imprimir;  
   private Connection conecta;
   public  TextArea saida;

public MontaTela ()
{
try{ // tratamento de erro

        // se tudo estiver correto este bloco será executado
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// carrega o driver do Banco de Dados
            conecta = DriverManager.getConnection("jdbc:odbc:Acesso");// conectando com banco de dados, a classe é utilizada para administrar e selecionar o drive apropriado para conexão com o Banco de Dados    
        //    saida.append("Conexão efetuada com sucesso \n");*/
   
     }             
       catch(ClassNotFoundException e) // o que estiver errado vem para "catch"
           {
             JOptionPane.showMessageDialog(null,"Erro no Carregador do driver:\n "  +e.getMessage()); // joga a mensagem na caixa de texto (ScrollPane)
      }
     catch(SQLException e)
      {
       JOptionPane.showMessageDialog(null,"Erro na conexao com o banco:\n " + e.getMessage());//  saida.append("Não foi possível efetuar a conexão com o banco de dados \n");
     }
 
   
         
          setLayout(null); // metodo que esta aplicando no objeto do panel

//@@@@@@@@@@@@@@@@@@@@@@criar método para poder acessar estes metodos abaixo utilizando IF
// com verificação de senha e login no banco

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

//=========================método do botão adicionar==============================

   adicionar = new JButton("Adicionar");
   adicionar.setBounds(100,440,90,25);
   add(adicionar);
   adicionar.addActionListener(new ActionListener()
   {
   public void actionPerformed( ActionEvent e )
    {
  try {
//     Statement executaSQL = conecta.createStatement();
     
     Statement executaSQL = conecta.createStatement();
      if ( !TNome.getText().equals("") && !TIdade.getText().equals("") && !TEndereço.getText().equals("") && !TCEP.getText().equals("") && !TEmail.getText().equals("")&& !TFunção.getText().equals(""))
     {
           
       String query = "INSERT INTO acesso(Nome,Idade,Endereço,CEP,Email,Função) VALUES('"+TNome.getText()+
                      "','"+TIdade.getText()+"','"+TEndereço.getText()+
                      "','"+TCEP.getText()+"','"+TEmail.getText()+"','"+TFunção.getText()+"')";

                    executaSQL.execute(query); //.execute( query );
                   
                                                           
                   
                   
        JOptionPane.showMessageDialog(null,"Inserido com sucesso",
                       "Inserido",JOptionPane.INFORMATION_MESSAGE);              
       
        TNome.setText("");
        TIdade.setText("");
        TEndereço.setText("");
        TCEP.setText("");
        TEmail.setText("");
        TFunção.setText("");
       
     }
     else
          JOptionPane.showMessageDialog(null,
                       "Não deixe nenhum campo em branco",
                       "ATENÇÃO",JOptionPane.ERROR_MESSAGE);
     executaSQL.close();
  }
  catch ( SQLException sqlex ) {
       JOptionPane.showMessageDialog(null,
                       "Ocorreu um erro no Cadastro. Verifique se os dados foram inseridos Corretamente!",
                       "ERRO!!!!",JOptionPane.ERROR_MESSAGE);
  }

}

   }); {

//=========================método do botão consultar==============================

   consultar = new JButton("Consultar");
   consultar.setBounds(200,440,90,25);
   add(consultar);
   {
   
  consultar.addActionListener(new ActionListener()
  {
   
   public void actionPerformed( ActionEvent e)
    {
  try {

     
     Statement executaSQL = conecta.createStatement();
     
      if ( !TNome.getText().equals("String"))
     {
           
              String query1 = ("SELECT * FROM acesso WHERE Nome = '"+TNome.getText()+"'");
               
               
       ResultSet rs = executaSQL.executeQuery(query1);
        if(rs.next()== true)
       {
            TNome.setText(rs.getString("Nome"));
            TIdade.setText(rs.getString("Idade"));
           TEndereço.setText(rs.getString("Endereço"));
           TCEP.setText(rs.getString("CEP"));
           TEmail.setText(rs.getString("Email"));
           TFunção.setText(rs.getString("Função"));
     
      }
         else{
            JOptionPane.showMessageDialog(null,"Registro não localizado");
        }
       executaSQL.close();
      }
      else
      {
         JOptionPane.showMessageDialog(null,"Digite o Nome correto para localizar","Atenção",
                 JOptionPane.ERROR_MESSAGE);
      }  
  }
  catch ( SQLException sqlex ) {
      JOptionPane.showMessageDialog(null,
                      "Ocorreu um erro na instrução SQL",
                      "ERRO!!!!",JOptionPane.ERROR_MESSAGE);
 }
   
     
    }
   
  });  

//=========================método do botão alterar==============================
alterar = new JButton(“Alterar”);
add(alterar);
alterar.setBounds(300,440,90,25);

     alterar.addActionListener(new ActionListener()
  {
       
   public void actionPerformed( ActionEvent e)
    {
       ResultSet rs = null;
  try {
     Statement executaSQL = conecta.createStatement();
     
       if ( !TNome.getText().equals("") &&
                       !TIdade.getText().equals("") &&
                       !TEndereço.getText().equals("") &&
                       !TCEP.getText().equals("") &&
                       !TEmail.getText().equals("") &&
                       !TFunção.getText().equals(""))
    {
      String query1 = "Select * from acesso " +
               "Where Nome ="+TNome.getText();
        rs = executaSQL.executeQuery(query1);
       
           
       }
       else
      {
         JOptionPane.showMessageDialog(null,"Digite os campos para inserir ao Banco de Dados","Atenção",
                 JOptionPane.ERROR_MESSAGE);
      }
       if(rs.next()==true)
       {
     
                 String query = "Update acesso set Nome='"+TNome.getText()+"',Idade='"+TIdade.getText()+"',Endereço='"+TEndereço.getText()+"',CEP='"+TCEP.getText()+"',E-mail='"+TEmail.getText()+"', where Função="+TFunção.getText();
                  int result = executaSQL.executeUpdate(query);
                   
                 if(result ==1)
              {
                  JOptionPane.showMessageDialog(null,"Alterado com sucesso");
             }
       }
      executaSQL.close();
           
           
 
   }
 
       
  catch ( SQLException sqlex ) {
       JOptionPane.showMessageDialog(null,
                       "Ocorreu um erro na instrução SQL",
                       "ERRO!!!!",JOptionPane.ERROR_MESSAGE);
  }

}

  });

//======================Botao Fechar=====================
fechar = new JButton(“Fechar”);
fechar.setBounds(700,010,90,25);
add(fechar);

  fechar.addActionListener(new ActionListener()
  {
       
   public void actionPerformed( ActionEvent e)
       
   {
   System.exit(0);
   }
  });
   
  //================metodos do botao limpar=================
 
   limpar = new JButton("Limpar");
   limpar.setBounds(400,440,90,25);
   add(limpar);
   
   
  limpar.addActionListener(new ActionListener()
  {
       
   public void actionPerformed( ActionEvent e)
       
   {
       TNome.setText("");
       TIdade.setText("");
       TEndereço.setText("");
       TCEP.setText("");
       TEmail.setText("");
       TFunção.setText("");
         
   }
  });
 
  //===========================Métodos_botão_imprimir=============================

imprimir = new JButton(“Imprimir”);
imprimir.setBounds(550,440,90,25);
add(imprimir);

  imprimir.addActionListener(new ActionListener()
  {
       
 public void actionPerformed( ActionEvent e)
       
   {
     
     
     
     
     
     
     
     
     
     Etiqueta1 et1 = new Etiqueta1();  
       
       PrinterJob job = PrinterJob.getPrinterJob();  
           job.setPrintable(et1);    
           boolean ok = job.printDialog();  
           if (ok) {  
               try {  
                   job.print();  
               } catch (PrinterException ex) {  
                   JOptionPane.showMessageDialog(null, ex.toString(),  
                           "Informação", JOptionPane.INFORMATION_MESSAGE);  
               }  
           }  
         
   }
  });
 
 

 

  //================metodos do botao limpar=================
 
  limpar = new JButton("Limpar");
  limpar.setBounds(400,440,90,25);
  add(limpar);
 
 
 limpar.addActionListener(new ActionListener()
 {
     
  public void actionPerformed( ActionEvent e)
     
  {
       TNome.setText("");
      TIdade.setText("");
      TEndereço.setText("");
      TCEP.setText("");
      TEmail.setText("");
      TFunção.setText("");
       TCodigo.setText("");
         
  }
 });

//======================POSICIONAMENTO DAS TEXTFILD E DOS LABELS============================

  lNome = new JLabel("Nome:"); //estanciando
  lNome.setBounds(120,200,60,30);//posicionando parametro do método
  add(lNome);
  TNome = new JTextField();
  TNome.setBounds(180,200,200,25);
 // tData.setEditable(false);//proibição de entrada de dados pelo usuário, o dado deste campo será gerado automaticamente
  add( TNome);
   
  lIdade = new JLabel("Idade:"); //estanciando
  lIdade.setBounds(120,240,60,30);//posicionando parametro do método
  add( lIdade);
  TIdade = new JTextField();
  TIdade.setBounds(180,240,20,25);
 // tData.setEditable(false);//proibição de entrada de dados pelo usuário, o dado deste campo será gerado automaticamente
  add( TIdade);
   
   
  lEndereço = new JLabel("Endereço:"); //estanciando
  lEndereço.setBounds(120,280,60,30);//posicionando parametro do método
  add( lEndereço);
  TEndereço = new JTextField();
  TEndereço.setBounds(180,280,450,25);
//  tSequencial.setEditable(false);//proibição de entrada de dados pelo usuário, o dado deste campo será gerado automaticamente
  add( TEndereço);
 
  lCEP = new JLabel("CEP:"); //estanciando
  lCEP.setBounds(120,320,60,30);//posicionando parametro do método
  add( lCEP);
  TCEP = new JTextField();
  TCEP.setBounds(180,320,90,25);
 // tData.setEditable(false);//proibição de entrada de dados pelo usuário, o dado deste campo será gerado automaticamente
  add( TCEP);
 
  lEmail = new JLabel("Email:"); //estanciando
  lEmail.setBounds(120,360,60,30);//posicionando parametro do método
  add( lEmail);
  TEmail = new JTextField();
  TEmail.setBounds(180,360,150,25);
 // tData.setEditable(false);//proibição de entrada de dados pelo usuário, o dado deste campo será gerado automaticamente
  add( TEmail);
 
  lFunção = new JLabel("Função:"); //estanciando
  lFunção.setBounds(120,400,60,30);//posicionando parametro do método
  add( lFunção);
  TFunção = new JTextField();
  TFunção.setBounds(180,400,200,25);
 // tData.setEditable(false);//proibição de entrada de dados pelo usuário, o dado deste campo será gerado automaticamente
  add( TFunção);

}

}
}}

Esse é o código do meu programa…

Por hora, o que tenho a dizer é: pelo amor de Deus, use as tags CODE!

package Cadastro;

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.util.StringTokenizer;
import java.util.Vector;

public class Etiqueta1 implements Printable {

private String TNome;  
private String TIdade;  
private String Tendereco;  
private String TCep;  
private String TEmail;  
private String TFunção;  
  

public int print(Graphics g, PageFormat pf, int page) throws PrinterException {  

    if (page > 0) { /* We have only one page, and 'page' is zero-based */  
        return NO_SUCH_PAGE;  
    }  

    Graphics2D g2d = (Graphics2D) g;  
    g2d.translate(pf.getImageableX()+10, pf.getImageableY());         
      
    // retangulo externo     
    g.drawRect(2, 2, 249, 100);          



    // endereco, bairro, cidade, estado  (1ª Linha da etiqueta)
  //  g.setFont(new Font("Serif", Font.PLAIN, 8));  
   // g.drawString(endereco + "-" + Cep + "-" + Email + "-" + Idade, 5, 33);  

    // cep, telefone, cpnj  
    g.drawString("Nome:" + TNome /*+ " Idade:" + Idade + " Função:" + Função*/, 5, 46);       

    // FUNÇÃO (2ªLINHA DA ETIQUETA)  
    g.setFont(new Font("Serif", Font.BOLD, 8));  
    g.drawString("Função: " + TFunção, 5, 58);  

    // linha 1  
    g.drawLine(2, 62, 250, 62);  


    return PAGE_EXISTS;  
}

MontaTela montaTela = new MontaTela();

public String getTNome() {
	return (montaTela.TNome.toString());
}


public void setTNome(String nome) {
	TNome = nome;
}


public String getTFunção() {
	return TFunção;
}


public void setTFunção(String função) {
	TFunção = função;
}  



  
/*========POSSIVELMENTE PODE SER USADO PARA IMPRESSÃO DE CÓDIGO DE BARRAS=====================================
 // codigoArtigo;lote;cor;cliente;revisor;largura;metragem
  
private String geraCodigoBarra()  
{  
    String cArtigo = "";  
    String cCor = "";  
    String cCliente = "";  

    st = new StringTokenizer(artigo, "/");          
    cArtigo = st.nextToken();  
      
    st = new StringTokenizer(cor, "/");          
    cCor = st.nextToken();  
      
    st = new StringTokenizer(cliente, "/");          
    cCliente = st.nextToken();  
      
    return cArtigo+""+lote+""+cCor+""+cCliente+""+revisor  
            +""+largura+""+metragem;  
}  

*///==========================================================================================

}

ESSE É MINHA CLASSE QUE TENTA IMPRIMIR ETIQUETA… SÓ QUE NOS CAMPOS QUE ERA PARA APARECER O NOME QUE EU MANDEI LOCALIZAR APARECE NULL

kra…seguinte…pelo que eu pude observar, não sei se estou errado…
eu vi que vc não passa a busca do banco para classe Etiqueta1 cuja qual é responsavel pela formatação da sua página a ser impressa.
Como vc não passa nenhum valor para as Strings dessa classe, por default ela são null, pois uma string não é um tipo primitivo e sim um objeto.
Se vc ta passando os valores diz aí onde, blz?
é pq fica meio dificil de ver desse modo aí.

< [quote]Quando for postar código coloque-o na tag de código ,assim tanto vc como agente poderá entender melhor seu código! [/quote]>

espero ter ajudado!
vlw! 8)