我的目标是: 有一个文本窗格,用户只能粘贴文本(操作系统不是按钮!!!),无法输入窗格
因为:不能有提交按钮(这是必须要求 - 我知道这不符合逻辑)
粘贴后:文本窗格对用户不可编辑,程序将更改特定字符的背景。
按下“清除字段”按钮后 - 程序清除窗格并返回初始状态
我的问题:如何使文本窗格接受粘贴但阻止键入
到目前为止,我只在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));
}
感谢您的帮助
答案 0 :(得分:2)
覆盖您的public void paste()
方法。默认情况下,您的JTextPane不可编辑(setEditable(false))。
paste()
中JTextComponent
方法的来源是
public void paste() {
if (isEditable() && isEnabled()) {
invokeAction("paste", TransferHandler.getPasteAction());
}
}
因此,您只需将其设为可编辑状态,调用super.paste()
,然后在超级调用后设置editable = false。