質問

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?

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();
    }
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top