É possível fazer com que um JTextField atualize o seu compo com uma variável “x” toda vez que esta variável é modificada? Tipo um evento que fique “escutando” a variável e escreve ela no jtextfield toda vez que ela é atualizada!!
Até
É possível fazer com que um JTextField atualize o seu compo com uma variável “x” toda vez que esta variável é modificada? Tipo um evento que fique “escutando” a variável e escreve ela no jtextfield toda vez que ela é atualizada!!
Até
Bom, não sei exatamente a resposta, mas enquanto espera para adiantar o seu lado tente pesquisar sobre Listeners, acredito que seja este o caminho.
sim 
como o amigo falou utilize KeyListener
tivrfoa,
acho que vc entendeu errado! Atualizar a variável usando o keylistner do textfield é fácil! O problema é o contrário! Atualizar o textfield utilizando um listner para a variável! Pois não existe listner para as variáveis.
Até
pod cre
public void seMudouAtualizaPorra(String s) { // supondo que a variável é String Oo
x = s;
textField.setText(x);
}
é isso ou tbm ñ?
Olá
Agradeço a todos pelas respostas.
Eu “consegui” fazer o que eu queria com o código abaixo. Entretanto não usei eventos.
package variaveis;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.EventObject;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
public class X {
/**
*
*/
private static final long serialVersionUID = 1L;
private double var;
JTextField imprimirVar = new JTextField();
public X(double inicialValue) {
var=inicialValue;
// TODO Auto-generated constructor stub
}
public void setX(double x)
{
var = x;
atualizarMostrador(var);
}
private void atualizarMostrador(double x)
{
imprimirVar.setText(String.valueOf(x));
}
public double getX()
{
return var;
}
public void setImprimirVariavel(JTextField textField)
{
imprimirVar = textField;
}
public JTextField getImmprimirVar()
{
return imprimirVar;
}
}
package variaveis;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Teste extends JFrame{
JTextField inserirValorDeX;
X x;
public Teste() {
// TODO Auto-generated constructor stub
inserirValorDeX = getInserirValorDeX();
x = new X(0);
desenhar();
}
private JTextField getValorDeX()
{
JTextField textField = new JTextField();
return textField;
}
private JTextField getInserirValorDeX()
{
JTextField textField = new JTextField();
textField.addKeyListener(new KeyListener(){
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
JTextField j = (JTextField) e.getSource();
x.setX(Double.parseDouble(j.getText()));
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
});
return textField;
}
public void desenhar()
{
setLayout(new GridLayout());
add(inserirValorDeX);
add(x.getImmprimirVar());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(new Dimension(300,300));
setTitle("Alterar Valor de X por evento");
}
public static void main(String[] args) {
Teste t = new Teste();
}
}
Na verdade o que eu queria era uma forma automática de atualizar os campos que mostram algumas variáveis que manipulo para o usuário. Entretanto fazer com que todas as vezes que esta variável sofra alguma alteração ela seja atualizada no textfield é um pouco “trabalhosa” e às vezes pode aparecer alguns bugs, ou seja, lugares em que eu atualizo a variável e me esqueço de atualiza-la.
Obviamente programadores experientes já devem fazer algo parecido (ou não), mas pra mim que estou começando foi algo novo que me ocorreu!
Até.
Vc precisa utilizar uma api de “binding”. Pra fazer isso que vc está querendo, vc precisa “amarrar” uma variável em um controle na tela.
Nunca trabalhei com binding em swing, mas dá uma “googlada” sobre “swing binding” que com certeza vc encontrará o caminho…
valew!
se vc quer que aconteça outra coisa qndo altera o valor de uma variável, é só alterar o valor em um método como eu mostrei.
public void updateVarX(String s) { // supondo q x seja uma String
x = s;
doOtherThing();
}
alguém desminta-me, please