Domanda

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

È stato utile?

Soluzione

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.

Altri suggerimenti

Can't you disable editing by setting isEditable to false?

textfield.setEditable(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();
    }
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top