Чтобы отключить редактирование в компоненте JTextArea, вы можете использовать один из следующих методов:
-
Установить JTextArea только для чтения:
JTextArea textArea = new JTextArea(); textArea.setEditable(false); -
Установите JTextArea как нефокусируемую:
JTextArea textArea = new JTextArea(); textArea.setFocusable(false); -
Отключить ввод с клавиатуры с помощью KeyListener:
JTextArea textArea = new JTextArea(); textArea.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { e.consume(); } }); -
Переопределить класс DefaultCaret, чтобы отключить мигание курсора:
JTextArea textArea = new JTextArea(); DefaultCaret caret = (DefaultCaret) textArea.getCaret(); caret.setBlinkRate(0); -
Создайте собственный фильтр документов, чтобы отклонить любые изменения в тексте:
JTextArea textArea = new JTextArea(); AbstractDocument document = (AbstractDocument) textArea.getDocument(); document.setDocumentFilter(new DocumentFilter() { public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) { // Do nothing to reject any changes } });
Эти методы можно использовать по отдельности или в комбинации для достижения желаемого эффекта отключения редактирования в JTextArea.