如何使文本窗格接受粘贴但阻止键入

时间:2014-04-20 12:26:44

标签: java swing jtextpane

我的目标是: 有一个文本窗格,用户只能粘贴文本(操作系统不是按钮!!!),无法输入窗格

因为:不能有提交按钮(这是必须要求 - 我知道这不符合逻辑)

粘贴后

:文本窗格对用户不可编辑,程序将更改特定字符的背景。

按下“清除字段”按钮后 - 程序清除窗格并返回初始状态

我的问题:如何使文本窗格接受粘贴但阻止键入

到目前为止,我只在JPanel中创建了文本窗格,所有控件都在不同的JPanel中

public class textPanel extends JPanel{

private JTextPane text;

public textPanel ()
{
    setLayout(new BorderLayout());
    text = new JTextPane();        //12,81
    text.setBorder(BorderFactory.createLoweredBevelBorder());
    add(text,BorderLayout.CENTER);

    StyledDocument doc = text.getStyledDocument();


    setBackground(Color.LIGHT_GRAY);
    setPreferredSize(new Dimension(1000, 210));




}    

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

覆盖您的public void paste()方法。默认情况下,您的JTextPane不可编辑(setEditable(false))。

paste()JTextComponent方法的来源是

public void paste() {
    if (isEditable() && isEnabled()) {
        invokeAction("paste", TransferHandler.getPasteAction());
    }
}

因此,您只需将其设为可编辑状态,调用super.paste(),然后在超级调用后设置editable = false。