Passar como parametro no comando sql o que eu digitar no jtextbox

pessoal, tenho uma consula sql feita no netbenas:

 String sql =  "select clientes.nom_cliente,  "
            + "clientes.end_cliente, "
            + "cidades.den_cidade, "
            + "ordem_montag_lote.num_lote_om, "
            + "ordem_montag_mest.num_om, "
            + "item.den_item, "
            + "cores.den_cor, "
            + "ped_itens_grade.qtd_pecas_solic, "
            + "cidades.cod_uni_feder "
+ "from ordem_montag_mest join ordem_montag_item on (ordem_montag_mest.cod_empresa = ordem_montag_item.cod_empresa and ordem_montag_mest.num_om = ordem_montag_item.num_om) "
     + "join ordem_montag_lote on (ordem_montag_lote.cod_empresa = ordem_montag_mest.cod_empresa and ordem_montag_lote.num_lote_om = ordem_montag_mest.num_lote_om) "
     + "join pedidos on (pedidos.cod_empresa = ordem_montag_item.cod_empresa and pedidos.num_pedido = ordem_montag_item.num_pedido) "
     + "join ped_itens on (pedidos.cod_empresa = ped_itens.cod_empresa and pedidos.num_pedido = ped_itens.num_pedido  and ordem_montag_item.num_sequencia = ped_itens.num_sequencia) "
     + "join estrut_grade on (ped_itens.cod_item = estrut_grade.cod_item_pai and ped_itens.cod_empresa = estrut_grade.cod_empresa) "
     + "join ped_itens_grade on (ped_itens_grade.cod_empresa = ped_itens.cod_empresa "
     +                         "and ped_itens_grade.num_pedido = ped_itens.num_pedido "
     +                         "and ped_itens_grade.num_sequencia = ped_itens.num_sequencia "
     +                         "and ped_itens_grade.cod_grade_1 = estrut_grade.cod_grade_1) "
     + "join item on (estrut_grade.cod_empresa = item.cod_empresa and estrut_grade.cod_item_compon = item.cod_item) "
     + "join cores on (ped_itens_grade.cod_grade_1 = cores.cod_cor) "
     + "join clientes on (pedidos.cod_cliente = clientes.cod_cliente) "
     + "join cidades on (clientes.cod_cidade = cidades.cod_cidade) "
+ "where ordem_montag_lote.num_lote_om = 699 "
+ "order by ordem_montag_mest.num_om, item.den_item ";

esse select busca no banco as informaçoes qe eu quero pra gerar um arquivo.etq
que imprimi etiquetas em uma impressora zebra…
esse arquivo é gerado a partir do numero da "ordem_montag_lote.num_lote_om = 699 " (nesse caso o 699),
eu preciso: tenho uma tela com um botao que gera o arquivo e um jtextbox que preciso fazer com que o usuario informe esse "ordem_montag_lote.num_lote_om"
ao inves de deixar esse numero direto no select…


String ordem_montag_lote.num_lote_om = seuTextBox.getText();

Depois é só passar como parâmetro ao método ou criar uma variável do mesmo tipo e seu getter e setter, então, ao montar a String de consulta, você chama o getter…

mas esse select está em classe diferente do formulario que eu quero, sera qe vai reconhecer tudo?

Olá, marcos!
Tudo bem?
Você deve ter uma classe que oferece o serviço de impressão e uma que busca os dados, certo?
Você passa o valor do textField para sua classe que busca os dados (DAO), ela faz a consulta e retorna os dados para sua classe que proverá o serviço de impressão.
Como será feito?

Você tem o evento do botão de gerar etiquetas:

buttonGerarEtiquetas.addActionListener( new ActionListener() {

   public void actionPerformed( ActionEvent e  ) {

       ClasseDAO pesquisa = new ClasseDAO();
       ClasseService servico = new ClasseService();

       List<SuaEntidade> entidades = pesquisa.pesquisarDadosEtiqueta( Integer.valueOf(meuTextField.getText()) );
       servico.imprimirEtiquetas( entidades );
   }
});

Basicamente ficaria assim.
A sua classe DAO buscará os dados das etiquetas:

public class ClasseDAO {

   public List<SuaEntidade> pesquisarDadosEtiquetas( int lote )
      throws SQLException {

      String query = "Select blablablabla...";  // para cada parâmetro que você tiver, represente ele com uma interrogação.

      Connection connection = SuaClasseConexao.getConnection();
      PreparedStatement statement = connection.prepareStatement( query );
      // Adicione seus parâmetros no statement:
      statement.setInt( 1, lote );

      ResultSet result = statement.executeQuery();

      // Monte sua List de entidades que você pesquisou no banco e retorne-a.
   }
}

Beleza, eu busquei meus dados. Agora, é só passar para a lista de entidades a classe que oferece o serviço de impressão!

public class ClasseService {

   public void imprimirEtiquetas( List<SuaEntidade> entidades ) {

      // seu código para impressão das etiquetas.
   }
}

E voilà, tá pronto!

Qualquer dúvida, posta ai!
Flw, abraço!

na verdade tenho essa classe toda


public class ClasseEiqueta {
    //Interface itc = new Interface();

    static void GerarArquivo() {
        //throw new UnsupportedOperationException("Not yet implemented");
    

     //public Connection getConnection() {
        String etiqueta = "";
        String nom_cliente = "";
        String end_cliente = ""; //endereço do cliente

        Statement stmt;
        ResultSet rs;

        String url = ("jdbc:informix-sqli://192.168.0.242:1525:DATABASE=logix;INFORMIXSERVER=prdfiasini;user=informix;password=informix");

        Connection conn = null;

        System.out.println(url);

        try {
             Class.forName("com.informix.jdbc.IfxDriver");
        }
        catch (Exception e) {
            System.out.println(e);
        }

         try {
            conn = (Connection) DriverManager.getConnection(url);
            System.out.println("\nAqui conn: " + conn.toString());

        } catch (SQLException sqlex) {
            //mostrarErro("Erro ao se conectar");
        }


        try {
            System.out.println("Connected ...");
            DatabaseMetaData md = conn.getMetaData();
            System.out.println("Driver name: " + md.getDriverName());
            System.out.println("Driver version: " + md.getDriverVersion());
            System.out.println("Database product name: "
                    + md.getDatabaseProductName());
            System.out.println("Database product version: "
                    + md.getDatabaseProductVersion());


            
        String sql =  "select clientes.nom_cliente,  "
            + "clientes.end_cliente, "
            + "cidades.den_cidade, "
            + "ordem_montag_lote.num_lote_om, "
            + "ordem_montag_mest.num_om, "
            + "item.den_item, "
            + "cores.den_cor, "
            + "ped_itens_grade.qtd_pecas_solic, "
            + "cidades.cod_uni_feder "
+ "from ordem_montag_mest join ordem_montag_item on (ordem_montag_mest.cod_empresa = ordem_montag_item.cod_empresa and ordem_montag_mest.num_om = ordem_montag_item.num_om) "
     + "join ordem_montag_lote on (ordem_montag_lote.cod_empresa = ordem_montag_mest.cod_empresa and ordem_montag_lote.num_lote_om = ordem_montag_mest.num_lote_om) "
     + "join pedidos on (pedidos.cod_empresa = ordem_montag_item.cod_empresa and pedidos.num_pedido = ordem_montag_item.num_pedido) "
     + "join ped_itens on (pedidos.cod_empresa = ped_itens.cod_empresa and pedidos.num_pedido = ped_itens.num_pedido  and ordem_montag_item.num_sequencia = ped_itens.num_sequencia) "
     + "join estrut_grade on (ped_itens.cod_item = estrut_grade.cod_item_pai and ped_itens.cod_empresa = estrut_grade.cod_empresa) "
     + "join ped_itens_grade on (ped_itens_grade.cod_empresa = ped_itens.cod_empresa "
     +                         "and ped_itens_grade.num_pedido = ped_itens.num_pedido "
     +                         "and ped_itens_grade.num_sequencia = ped_itens.num_sequencia "
     +                         "and ped_itens_grade.cod_grade_1 = estrut_grade.cod_grade_1) "
     + "join item on (estrut_grade.cod_empresa = item.cod_empresa and estrut_grade.cod_item_compon = item.cod_item) "
     + "join cores on (ped_itens_grade.cod_grade_1 = cores.cod_cor) "
     + "join clientes on (pedidos.cod_cliente = clientes.cod_cliente) "
     + "join cidades on (clientes.cod_cidade = cidades.cod_cidade) "
+ "where ordem_montag_lote.num_lote_om = 699 "
+ "order by ordem_montag_mest.num_om, item.den_item ";

        PreparedStatement stmtt =  conn.prepareStatement(sql);
         ResultSet rss = stmtt.executeQuery();

              while (rss.next()){
                nom_cliente = rss.getString("nom_cliente");
                end_cliente = rss.getString("end_cliente");
                String cidade = rss.getString("den_cidade");
                String num_lote_om = rss.getString("num_lote_om");
                String num_om = rss.getString("num_om");
                String den_item = rss.getString("den_item");
                String cor = rss.getString("den_cor");
                float qtd_item = Float.parseFloat(rss.getString("qtd_pecas_solic"));
                String estado = rss.getString("cod_uni_feder");
                int int_qtd_item = Float.floatToIntBits(qtd_item);
                System.out.println(qtd_item);

                for( int i = 0; i < qtd_item; i++ )
                {
                  etiqueta += "^XA";
                  etiqueta += "\n^FWR";
                  etiqueta += "\n ^FO660,40^A0,50,40^FDCliente: ^FS";
                  etiqueta += "\n^FO650,170^A0,75,45^FD"+nom_cliente.trim()+"^FS";
                  etiqueta += "\n^FO560,40^A0,50,40^FDEndereco: ^FS";
                  etiqueta += "\n^FO550,200^A0,60,40^FD"+end_cliente.trim()+"^FS";
                  etiqueta += "\n^FO460,40^A0,50,40^FDCidade: ^FS";
                  etiqueta += "\n^FO450,170^A0,60,40^FD"+cidade.trim()+"^FS";
                  etiqueta += "\n^FO360,40^A0,50,40^FDNum Lote: ^FS";
                  etiqueta += "\n^FO350,210^A0,68,40^FD"+num_lote_om.trim()+"^FS";
                  etiqueta += "\n^FO260,40^A0,50,40^FDNum OM: ^FS";
                  etiqueta += "\n^FO255,200^A0,68,40^FD"+num_om.trim()+"^FS";
                  etiqueta += "\n^FO160,40^A0,50,40^FDItem: ^FS";
                  etiqueta += "\n^FO150,160^A0,68,40^FD"+den_item.trim()+"^FS";
                  etiqueta += "\n^FO70,40^A0,50,35^FDCor: ^FS";
                  etiqueta += "\n^FO70,140^A0,60,35^FD"+cor.trim()+"^FS";
                  etiqueta += "\n^FO460,510^A0,50,35^FDEstado: ^FS";
                  etiqueta += "\n^FO450,630^A0,60,35^FD"+estado.trim()+"^FS";
                  etiqueta += "\n^XZ";
                }
                GerarArquivo(etiqueta);
            } 

        } catch (SQLException e) {
            System.out.println(e);
        }

            //System.out.println("FAILED: failed to close the connection!");

        System.out.println("Done!");
        // return conn;
     }


    @SuppressWarnings("unchecked")

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {

                    new Interface().setVisible(true);

            }
        });
    }

    private void mostrarErro(String msg) {
         JOptionPane.showMessageDialog(
                null,
                msg,
                "Erro encontrado",
                JOptionPane.ERROR_MESSAGE);
    }
    public static String GerarArquivo(String textoEtiqueta){
        try{
          File arquivo;

          arquivo = new File("c:\\entrega000.etq");;
          FileOutputStream fos = new FileOutputStream(arquivo);
          String texto = textoEtiqueta;
          fos.write(texto.getBytes());
          fos.close();
      }
      catch (Exception ee) {
          ee.printStackTrace();
      }
      return "ok";
  }
}

o meu select ta ai dentro, sei que ai ta grande, mas so precisam entender o select, coloquei tydo pra vcs verem
o qe realmente tenho…

o meu formulario Jframe esta no mesmo pacote porem é uma classe diferente…
se eu colocar o meu jtextfieldlote no lugar do 699 no select ele nao ira reconher justamente
pelo fato do jtextfieldlote nao estar na mesma classe do select…

quero qe ao usuario informar o numero do lote ele gerar o arquivo com as etiquetas correspondentes ao numero de lote
qe ele digitou e nao somente do 699 qe esta ai…

Primeiro: faça uso de uma arquitetura para o seu software. Do modo que está, você não separa regra de negócio de serviços de front-end. Já ouviu falar no padrão MVC? É um padrão largamente utilizado na indústria, vale a pena dar uma olhada!

O que eu fiz no meu post foi simplesmente separar cada coisa.
Separando seu código, ficaria algo assim:

  1. Você teria uma classe que gerenciaria a conexão com o Banco de Dados. Essa classe retorna uma conexão com o BD.
public class ConnectionManager {

   private String url = "aquela url gigante que você postou acima";
   
   private ConnectionManager() {}   

   private ConnectionManager instance = new ConnectionManager();
   public static ConnectionManager getInstance() {
      return instance;
   }

   public Connection getConnection() 
      throws SQLException {
      
      Class.forName( "" );
      Connection connection = (Connection) DriverManager.getConnection(url);
      return connection;
   }
}
  1. Você terá uma classe Bean que representará a entidade Etiqueta que você está buscando no BD.
public class Etiqueta {
  
   private Long id;
   private Long numeroEtiqueta;
   private String descricaoEtiqueta;

   // Getters & Setters
}
  1. Você teria uma classe DAO (Data Access Object), a qual faria todo o acesso e gerenciamento dos dados no BD.
public class EtiquetasDAO {

   public List<Etiqueta> lerEtiquetas( int lote )
      throws SQLException {

      // Nessa SQL, separe quais são os parâmetros e troque por interrogação.
      String sql =  "select clientes.nom_cliente,  "
            + "clientes.end_cliente, "
            + "cidades.den_cidade, "
            + "ordem_montag_lote.num_lote_om, "
            + "ordem_montag_mest.num_om, "
            + "item.den_item, "
            + "cores.den_cor, "
            + "ped_itens_grade.qtd_pecas_solic, "
            + "cidades.cod_uni_feder "
            + "from ordem_montag_mest join ordem_montag_item on (ordem_montag_mest.cod_empresa"
            + "=ordem_montag_item.cod_empresa and ordem_montag_mest.num_om = ordem_montag_item.num_om) "
            + "join ordem_montag_lote on (ordem_montag_lote.cod_empresa = ordem_montag_mest.cod_empresa and 
            + "ordem_montag_lote.num_lote_om = ordem_montag_mest.num_lote_om) "
            + "join pedidos on (pedidos.cod_empresa = ordem_montag_item.cod_empresa and pedidos.num_pedido =
            + "ordem_montag_item.num_pedido) "
            + "join ped_itens on (pedidos.cod_empresa = ped_itens.cod_empresa and pedidos.num_pedido = ped_itens.num_pedido"
            + "and ordem_montag_item.num_sequencia = ped_itens.num_sequencia) "
            + "join estrut_grade on (ped_itens.cod_item = estrut_grade.cod_item_pai and ped_itens.cod_empresa = 
            + "estrut_grade.cod_empresa) "
            + "join ped_itens_grade on (ped_itens_grade.cod_empresa = ped_itens.cod_empresa "
            +                         "and ped_itens_grade.num_pedido = ped_itens.num_pedido "
            +                         "and ped_itens_grade.num_sequencia = ped_itens.num_sequencia "
            +                         "and ped_itens_grade.cod_grade_1 = estrut_grade.cod_grade_1) "
            + "join item on (estrut_grade.cod_empresa = item.cod_empresa and estrut_grade.cod_item_compon = item.cod_item) "
            + "join cores on (ped_itens_grade.cod_grade_1 = cores.cod_cor) "
            + "join clientes on (pedidos.cod_cliente = clientes.cod_cliente) "
            + "join cidades on (clientes.cod_cidade = cidades.cod_cidade) "
            + "where ordem_montag_lote.num_lote_om = 699 "
            + "order by ordem_montag_mest.num_om, item.den_item ";

      // Faço a chamada da minha classe de conexão que tem uma única responsabilidade: criar conexões com o banco de dados, retirando da classe DAO dessa responsabilidade.
      Connection connection = ConnectionManager.getInstance().getConnection();
      PreparedStatement statement = connection.prepareStatement( sql );
      
      // Para cada parâmetro que você colocou ?, adicione no seu Statement.
      statement.setString( 1, "seu parâmetro 1" );
      statement.setLong( 2, "seu parâmetro 2" );
      statement.setDate( 3, "seu parâmetro 3" );
      // e assim por diante...

      ResultSet result = statement.executeQuery();
      
      List<Etiqueta> etiquetas = new Etiquetas();
      while ( result.next() ) {

         Etiqueta etiqueta = new Etiqueta();
         etiqueta.setCampo1( rs.getString("campo 1") );
         etiqueta.setCampo2( rs.getLong("campo 2") );
         etiqueta.setCampo3( rs.getDate("campo 3") );
         // e assim por diante...
      }

      statement.close();
      return etiquetas;
   }
}

Perceba que, até aqui, estamos separando cada responsabilidade em seu lugar. Não tem nada “engruvinhado” como está no seu exemplo. Separando as responsabilidades em uma arquitetura definida, o código fica mais legível e de mais fácil manutenção!

  1. Você cria uma classe que oferece os servicos da Etiqueta. No caso, o método pegará as etiquetas que você leu e vai criar o texto pra ser impresso.
public class EtiquetaService {

   public String montarEtiqueta( List<Etiqueta> etiquetas ) {

      String etiquetaFinal = "";

      for ( Etiqueta etiqueta : etiquetas ) {

         etiquetaFinal += "^XA";
         etiquetaFinal += "\n^FWR";
         etiquetaFinal += "\n ^FO660,40^A0,50,40^FDCliente: ^FS";
         etiquetaFinal += String.format( "\n^FO650,170^A0,75,45^FD%s^FS", etiqueta.getNomeCliente().trim() );
         //e assim por diante...
      }

      return etiquetaFinal;
   }

   public void gerarArquivo( String etiqueta )
      throws IOException {

      File file = new File( "C:\\entrega000.etq" );
      FileOutputStream output = new FileOutputStream( file );
      output.write( etiqueta.getBytes() );
      output.close();
   }
}

Por último, seu Main estará fazendo a seguinte chamada:

public class Main {

   public static void main( String[] args ) {

      EtiquetaDAO dao = new EtiquetaDAO();
      EtiquetaService service = new EtiquetaService();

      List<Etiquetas> etiquetas = dao.lerEtiquetas( 699 );
      String etiqueta = service.montarEtiquetas( etiquetas );
      service.gerarArquivo( etiqueta );
   }
}

Viu só? O código não fica mais fácil de ler e manipular?
Pensa com carinho nisso!
Abraços!