Supossing that a JFormattedTextField is enabled and contains a formatter, is there a way to make it readonly? With a JTextField, we just need to suply a custom Document and do all the control there, but with a JFormattedTextField I suppose that things are a little more complicated as we don't want to mess with its document filter. I really need this feature. So, is there a way to achieve this?
UPDATE: Just my opinion, but it seems that the JFormattedTextField is so bad designed in this sense that it leaves no easy solution to this simple problem.
Marcos
You can simply use:
JFormattedTextField field = new JFormattedTextField();
// ...
field.setEditable(false);
just like for the JTextField
since JFormattedTextField
extends JTextField
Check out the javadoc as well.
Can't you disable editing by setting isEditable to false?
What about undoing every change that occurs:
JFormattedTextField formattedTextField = new JFormattedTextField("Can't touch this! :)");
formattedTextField.getDocument().addUndoableEditListener(new UndoableEditListener() {
@Override
public void undoableEditHappened(UndoableEditEvent e) {
e.getEdit().undo();
}
});
来源:https://stackoverflow.com/questions/15904796/readonly-jformattedtextfield