JTextField com TextListener...  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
munox
Debugger

Membro desde: 31/05/2006 16:24:22
Mensagens: 72
Offline

To tentando fazer com que assim que eu começar a digitar no 1º JTextField, o segundo se torne editavel... mas nao estou conseguindo! Ate cheguei a criar um TextListener mas nao consigo adiciona-lo ao JTextField... alguem pode me ajudar?! Aqui esta o meu código ate agora...


//IMPORTAÇÕES
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class GuiGrades extends JFrame {

// DECLARO OS COMPONENTES QUE IREI USAR AQUI PARA PODER USAR EM QUAISQUER METODOS!
private JTextField jtfB1;
private JTextField jtfPI;
private JTextField jtfB2;
private JButton bCalc;
private JTextField jtfEx;

public GuiGrades() { // METODO CONSTRUTOR

this.setTitle("Notas"); // Coloca o titulo da janela
this.setSize(200, 200); // Define o tamanho da janela
this.setLocationRelativeTo(null); // Onde inicia a janela (Centro)
this.setResizable(false); // Não redimensionavel
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Fecha o aplicativo quando a pessoa clica no botão X

JPanel panel = gui(); //CRIA UM OBJETO PANEL COM AS CARACTERISTICAS DO METODO JPANEL gui

Container c = this.getContentPane();
c.add(panel, "Center");
}

public JPanel gui() {
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(5, 2, 3, 3));
panel.setBorder(BorderFactory.createTitledBorder("Digite suas notas"));

panel.add(new JLabel("B1:"));
jtfB1 = new JTextField(5);
panel.add(jtfB1);

panel.add(new JLabel("PI:"));
jtfPI = new JTextField(5);
panel.add(jtfPI);
jtfPI.setEditable(false);
jtfPI.setFocusable(false);

panel.add(new JLabel("B2:"));
jtfB2 = new JTextField(5);
panel.add(jtfB2);
jtfB2.setEditable(false);
jtfB2.setFocusable(false);

panel.add(new JLabel(""));

bCalc = new JButton("Calcular");
panel.add(bCalc);

panel.add(new JLabel("Exame:"));
jtfEx = new JTextField(5);
panel.add(jtfEx);
jtfEx.setEditable(false);
jtfEx.setFocusable(false);

return panel;
}

class TextAdder implements TextListener {
public void textValueChanged( TextEvent e ) {
Object source = e.getSource();
if (source == jtfB1)
jtfB2.setEditable(true);

}
}

public static void main(String[] args) {
GuiGrades run = new GuiGrades();
run.setVisible(true);
}

}

Muito obrigado a quem me ajudar! Obrigado MESMO!!! =D
mrsmylle
JavaEvangelist

Membro desde: 20/05/2005 00:02:06
Mensagens: 432
Offline

Opa, beleza?!Segue ai, um exemplo:
juliano.bez
What is classpath?
[Avatar]

Membro desde: 27/08/2006 09:47:01
Mensagens: 6
Offline

Voce pode fazer com que ao se pressionar uma tecla dentro do campo 1, ele verifica o tamanho da string existente no campo 1. Se o tamanho for maior do que zero, ele habilita o campo 2. voce pode implementar tbm para quando o tamanho do campo voltar a ser zero, ou seja, se o campo 1 for todo apagado, voce pode novamente desabilitar o campo 2, fica assim:


JTextField1.addKeyListener(new KeyAdapter() {

public void keyPressed(KeyEvent evt) {

if(JTextField1.getText().length()>0){
TextField2.setEditable(true);
}

//Se voce desejar o caminho inverso, faça isso:

else if(JTextField1.getText().length()==0){
JTextField2.setEditable(false);
}

}
});

espero ter ajudado,
Abraços
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team