Swing JFormattedTextField, исправляющий многострочную вставку

JFormattedTextField есть ошибка. Он не поддерживает многострочный ввод, но позволяет вставлять многострочный текст. Я знаю, как отключить функцию копирования/вставки, но это не то, чего я хочу. Можно ли перехватить действие «вставить» и удалить все \n из входящей строки?

Доказательство ошибки:

package com;

import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class SwingTest {
    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setContentPane(new SimpleFTF());
        f.pack();
        f.setVisible(true);
    }

    public static class SimpleFTF extends JPanel {
        public SimpleFTF(){
            JFormattedTextField field = new JFormattedTextField("    ");
            add(field, java.awt.BorderLayout.CENTER);
        }
    }
}

Попробуйте вставить:

1
2

person FoxyBOA    schedule 05.09.2015    source источник
comment
Разве вы не можете просто использовать JTextArea?   -  person Bruno Caceiro    schedule 05.09.2015


Ответы (1)


Вы можете написать событие в JFormattedTextField, поэтому, если что-то вставляется, оно удаляет \n ascii из 10 символов и обновляет поле.

person Piyush Yawalkar    schedule 05.09.2015