[Resolvido]Texto de um jtextfield em um jlabel

6 respostas
pardim7

Pessoal, preciso de ajuda para colocar um texto que foi digitado em um jtextfield em um jlabel;
Tentei dessas duas formas, mas não deu certo:

String jh = jTextField1.getText().toString(); jLabel3.setText(jh);

String jh = gg.jTextField1.getText(); jLabel3.setText(jh);

É possível fazer isto?

6 Respostas

ViniGodoy

Plenamente possível. Inclusive, pode ser até com pouco código:

Label3.setText(gg.jTextField1.getText());

Entretanto, onde você colocou esse código? E como inicializou a variável gg?

pardim7
A variável gg seria um novo objeto de um jframe que tem o textfield:
public class NewJFrame1 extends javax.swing.JFrame {
 
    NewJFrame gg = new NewJFrame();//jframe 1
    
    public String jh = gg.jTextField1.getText();
   

    public NewJFrame1() {
        initComponents();
        
  
    }

O Código está assim no JFrame2:

private void initComponents() {

        jLabel4 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();

        jLabel4.setText("jLabel4");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(new java.awt.Color(255, 102, 102));

       
        jLabel3.setText(gg.jTextField1.getText());
//parte do codigo

}
ViniGodoy

Nesse caso, esse novo JFrame vai estar com o JTextField vazio, não? Não há nada a ser copiado para o JLabel.

Fazer isso só vai copiar o texto, não vai manter os dois componentes “sincronizados”. Sincronizar dois componentes é outra história, o buraco é bem mais embaixo.

pardim7
ViniGodoy:
Nesse caso, esse novo JFrame vai estar com o JTextField vazio, não? Não há nada a ser copiado para o JLabel.

Fazer isso só vai copiar o texto, não vai manter os dois componentes "sincronizados". Sincronizar dois componentes é outra história, o buraco é bem mais embaixo.

Putz, é verdade, obrigado, coloquei uma String como static e coloquei o valor do jtextfield, ficou assim mais ou menos e deu certo:

JFrame1:
public static String vv;
//
 private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        vv  = jTextField1.getText();
        if(jTextField1.getText().equals("")){
            JOptionPane.showMessageDialog(rootPane, "O campo de texto está em branco!");
        
        }
JFrame2:
public class NewJFrame1 extends javax.swing.JFrame {
 
    NewJFrame gg = new NewJFrame();
    
    public String jh = gg.jTextField1.getText();
//
    private void initComponents() {
        jLabel3 = new javax.swing.JLabel();

    jLabel3.setText(gg.vv);
    }
}
Muito Obrigado!
ViniGodoy

Deixar como static é uma péssima prática. Se você precisa que duas janelas saibam da existência uma da outra, passe a janela por parâmetro:

public class Janela2 extends JFrame {
    private Janela1 outraJanela;
    public Janela2(Janela1 outraJanela) {
         this.outraJanela = outraJanela;
    }

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        vv  = outraJanela.jTextField1.getText();  
        if(vv.isEmpty()){  
            JOptionPane.showMessageDialog(rootPane, "O campo de texto está em branco!");            
        }  
}
pardim7

Ah ok, fiz passando a janela por parâmetro e está funcionando ok, Muito obrigado!

Criado 25 de outubro de 2014
Ultima resposta 25 de out. de 2014
Respostas 6
Participantes 2