Eu adicionei um MaskFormatter no meu JFormattedTextField e não consigo mais inserir um valor dinamicamente no controle com o método .setText(), alguém saberia me dizer o que eu posso fazer para inserir um valor dinamicamente com o MaskFormatter adicionado?
É para ser o .setText(string) realmente cara… Tens o código pra nós darmos uma analisada?
Um exemplo onde funciona, para comparares com o teu:
import java.awt.BorderLayout;
import java.text.ParseException;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.text.MaskFormatter;
public class Tester {
public static void main(String[] args) {
JPanel panel = new JPanel( new BorderLayout() );
JFrame frame = new JFrame( "Formatted Text Test" );
frame.getContentPane().add(panel);
MaskFormatter mask = null;
try {
mask = new MaskFormatter("##:##");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JFormattedTextField textField = new JFormattedTextField(mask);
textField.setText("1233");
panel.add(textField);
frame.pack();
frame.setVisible( true );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}