tenho um metodo que gera um arquivo.etq que imprimi em um impressora zebra:
quero saber como chamo esse metodo em um botao,
porque todas vez que preciso executar e gerar o arquivo.etq preciso dar shift+f6 no netbeans,
quero qe ao inves de dar shift+f6 no netbeans, simplesmente clicar no botao, executando e consequentemente gerando
o arquivo.etq
pulblicclassBotaoextendsJFrameimplementsActionListener{privateJButtonbotao;publicBotao(){botao=newJButton("Oi eu sou um botão");botao.addActionListener(this);this.size(300,300);this.setVisible(true);this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);this.add(botao);}publicvoidactionPerformed(ActionEvente){//Chame seu metodo aki}}}
M
marcos.stuchi
como criar o botao eu sei, ja criei um formulario Jframe com o botao,
1.Ajeite a formatação do teu último post que tá praticamente incompreenssível.
2.Você não precisa criar um novo objeto para chamar métodos estáticos, pode fazer uma referência direta a classe como:ClasseEtiqueta.GerarEtiqueta()
3.Não sabemos que string deve ir no parâmetro, então poste o código aonde você chama esse método.
Quando não dá pra passar por parâmetro, é mais fácil armazenar em um atributo estático da classe. Assim, quando você precisar gravar, é só fazer referência a esse atributo. O melhor mesmo é usar esse seu getName(), mas você precisa usar um setName(String s) primeiro, pra poder setar a string com o conteúdo que você quer imprimir.
Tenta fazer o que eu te falei. Qualquer dúvida, posta aí.
M
marcos.stuchi
na verdade tenho esse codigo abaixo qe gera o arquivo.etq com as etiquetas…
esse codigo ta blz, no momento qe eu executo com shift+f6 ele gera certinho as etiquetas que preciso
na quantidade que preciso
publicclassClasseEiqueta{privateConnectiongetConnection(){Stringetiqueta="";Stringnom_cliente="";Stringend_cliente="";Statementstmt;ResultSetrs;Stringurl=("jdbc:informix-sqli://192.168.0.242:1525:DATABASE=logix;INFORMIXSERVER=prdfiasini;user=informix;password=informix");Connectionconn=null;System.out.println(url);try{Class.forName("com.informix.jdbc.IfxDriver");}catch(Exceptione){System.out.println(e);}try{conn=(Connection)DriverManager.getConnection(url);System.out.println("\nAqui conn: "+conn.toString());}catch(SQLExceptionsqlex){mostrarErro("Erro ao se conectar");}try{System.out.println("Connected ...");DatabaseMetaDatamd=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());Stringsql="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 = 690 "+"order by ordem_montag_mest.num_om, item.den_item ";PreparedStatementstmtt=conn.prepareStatement(sql);ResultSetrss=stmtt.executeQuery();while(rss.next()){nom_cliente=rss.getString("nom_cliente");end_cliente=rss.getString("end_cliente");Stringcidade=rss.getString("den_cidade");Stringnum_lote_om=rss.getString("num_lote_om");Stringnum_om=rss.getString("num_om");Stringden_item=rss.getString("den_item");Stringcor=rss.getString("den_cor");floatqtd_item=Float.parseFloat(rss.getString("qtd_pecas_solic"));Stringestado=rss.getString("cod_uni_feder");intint_qtd_item=Float.floatToIntBits(qtd_item);System.out.println(qtd_item);for(inti=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(SQLExceptione){System.out.println(e);}System.out.println("FAILED: failed to close the connection!");System.out.println("Done!");returnconn;}
aqui tenho o o metodo dentro da mesma classe etiqueta, o nome dele eh GerarAquivo como vcs podem ver
tudo isso assim como eu ja disse esta dentro da classe “ClasseEtiqueta”…
o que eu preciso: desenvolver uma interface (qe ja esta desenvolvida em um formularioJFrame) com um botao qe ao invés de executar com shift+f6,
simplesmente clico nesse botao e gero o arquivo com as etiquetas, ou seja substituir o shift+f6 pelo click no botao.
E
elissonandrade
Ahhh, então você só precisa chamar o getconnection() no actionPerformed (se estiver em outra classe lembre-se de torna o método público):
//Dentro do actionPerformed(newClasseEtiqueta()).getConnection();
Qualquer outra dúvida, posta aí.
M
marcos.stuchi
cara mesmo assim ele pede algum parametro pra eu passar dentro do getConnection():
mas nao sei o que colocar, tento colocar String textoEtiqueta que é o mesmo qe to passando como parametro no metodo GerarArquivo, mas nao reconhece…
M
marcos.stuchi
amigo, deu certo…
tenho outra duvida agora…
sera que poderia me dar mais uma maozinha???
E
elissonandrade
Claro… Assim que você contar pra gente sua dúvida…
M
marcos.stuchi
no codigo acima, no meu select vc pode perceber qe tem essa linha la:
ja qe tenho o botao de gerar as etiquetas, quero qe ao inves de eu colocr
esse 690 qe esta ai, o usuario irá digitar isso em um jTextField para poder
gerar o arquivo.etq de acordo com o ordem_montag_lote.num_lote_om qe ele quiser
e nao de jeito qe esta ai…
Segundo, acrescente um argumento no seu método getConnection para receber o valor do spinner. Daí, no action event to pega o valor do spinner e joga no argumento receém criado de getConnection. Aí, você faz uma concatenação com o argumento bem onde fica o “690”. Deve funcionar. Se não conseguir, poste o seu código modificado até onde você conseguiu que te ajudaremos.