galerinha q eu adoro. “ajuda eu”…
fiz um programinha básico jFrame ele recebe valor da jTextfild e exibe junto com mensagem na tela de console e após alguns segundo exibe outra isso após um único click no botão ate ae ok.
mas quero exibir a mensagem na Jlabel e não na tela de console como passo os valores para la no meu método run?
// JButtonbtn=newJButton("Confirmar!");publicJLabellbl=newJLabel();JTextFieldtxt=newJTextField();publicintnum;Bancob1=newBanco();//@OverridepublicvoidactionPerformed(ActionEvente){// JOptionPane.showMessageDialog(null, "Informaçao Incorreta!", "ERRO!",// JOptionPane.ERROR_MESSAGE);Stringagrumento=this.getTxt().getText();// passa o texto digitado na JTF para as variaves do metodo recebeTexto!b1.recebeTexto(agrumento);b1.start();}publicJButtongetBtn(){returnbtn;}//Stringatendente;booleanrepetir=true;Stringnome;publicvoidrecebeTexto(Stringtx){this.nome=tx;}publicvoidrun(){this.atendente=("Bom dia "+nome+" Como vai?");System.out.println(atendente);try{sleep(3000);this.atendente=(nome+" Voce posui R$"+banc+" depositados!");System.out.println(atendente);}catch(InterruptedExceptione){e.printStackTrace();}}
a label esta na classe principal! como jogo as informações desta classe para ela?
G
GabrielA2
Você pode criar um método para retornar o seu jLabel ou tornar a variável do jLabel como static ou então você tendo uma instancia da classe você pode acessar normalmente a variavel.
Indico você dar uma lida sobre Orientação de Objetos, é meio que a base para você progredir em java, tais como essas questões de metódos, instancias, parametros, classe, etc.
P
Pantrol
isso to ligado o problema e que não consigo sincronizar com o botão. vou mandar o código todo para ver se vc pode me ajudar.
package sw;
importjava.awt.Color;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JTextField;importjavax.swing.SwingConstants;publicclassStartextendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;JButtonbtn=newJButton("Confirmar!");publicJLabellbl=newJLabel();JTextFieldtxt=newJTextField();publicintnum;Bancob1=newBanco();publicvoidjanela(){componentes();setTitle("Banco");setSize(350,500);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocationRelativeTo(null);setVisible(true);}publicvoidcomponentes(){// BotãosetLayout(null);btn.setBounds(120,350,100,60);btn.setFocusable(false);// retira o contorno do texto!btn.addActionListener(this);getContentPane().add(btn);// textosetLayout(null);lbl.setBounds(10,80,300,50);lbl.setText("<html> <center> BOM DIA! <br> Por favor informe seu nome!");lbl.setHorizontalAlignment(SwingConstants.CENTER);// centraliza o textoFontfonte=newFont("Bahnschrift SemiBold Condensed",Font.BOLD,16);lbl.setFont(fonte);lbl.setForeground(Color.BLUE);getContentPane().add(lbl);// Entradade dadossetLayout(null);txt.setBounds(120,270,100,30);txt.setHorizontalAlignment(SwingConstants.CENTER);// centraliza o textotxt.setFocusable(true);// retira o contorno do texto!getContentPane().add(txt);}publicstaticvoidmain(String[]args){Startstart=newStart();start.janela();}@OverridepublicvoidactionPerformed(ActionEvente){// JOptionPane.showMessageDialog(null, "Informaçao Incorreta!", "ERRO!",// JOptionPane.ERROR_MESSAGE);Stringagrumento=this.getTxt().getText();// passa o texto digitado na JTF para as variaves do metodo recebeTexto!b1.recebeTexto(agrumento);this.getLbl().setText(b1.arg);b1.start();}publicJButtongetBtn(){returnbtn;}publicvoidsetBtn(JButtonbtn){this.btn=btn;}publicJLabelgetLbl(){returnlbl;}publicvoidsetLbl(JLabellbl){this.lbl=lbl;}publicJTextFieldgetTxt(){returntxt;}publicvoidsetTxt(JTextFieldtxt){this.txt=txt;}}
////////
package sw;
publicclassBancoextendsThread{floatbanc=0.0f;floatdep=0.0f;Stringatendente;booleanrepetir=true;Stringnome;Stringarg;publicvoidrecebeTexto(Stringtx){this.nome=tx;}publicvoidrun(){// this.atendente = ("Bom dia " + nome + " Como vai?"");// System.out.println(atendente);System.out.println(atendente);arg="Bom dia "+nome+" Como vai?";// parece q funcionou mas to //tendo q dar 2 cliks no botao e so quero com um!try{sleep(3000);// this.atendente = (nome + " Voce posui R$" + banc + " depositados!");// System.out.println(atendente);}catch(InterruptedExceptione){e.printStackTrace();}}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}}
R
Solucao aceita
RoinujNosde1 like
Você pode pegar uma instância da classe Start em sua classe Banco pelo construtor.
publicclassBanco{privatefinalStartstart;publicBanco(Startstart){this.start=start;}//e no seu método run() vc usa start.getLbl().getText()}
Na classe Start você vai fazer new Banco(this);
P
Pantrol
Hummm amo esse Fórum, vcs são de + ate sabia q podia instanciara classe mas nem pensei nisso Obrigadão!