【发布时间】:2010-09-23 22:04:00
【问题描述】:
我有一个用 Swing 编写的应用程序,awt。 我想阻止用户将值粘贴到文本字段中。 有没有办法在不使用动作监听器的情况下做到这一点?
【问题讨论】:
标签: java swing awt jtextfield
我有一个用 Swing 编写的应用程序,awt。 我想阻止用户将值粘贴到文本字段中。 有没有办法在不使用动作监听器的情况下做到这一点?
【问题讨论】:
标签: java swing awt jtextfield
您可以像这样使用 null 参数调用 setTransferHandler:
textComponent.setTransferHandler(null);
这将禁用该字段上的所有复制/粘贴操作。
【讨论】:
最好的方法是在组件 ActionMap 中移除与 CTRL+V 击键相关的动作。
【讨论】:
最简单的表达方式:textComponent.setEditable(false);
这将禁用剪切和粘贴,但仍启用复制。
【讨论】:
public class PastlessJTextField extends JTextField {
public PastlessJTextField() {
super();
}
public PastlessJTextField( int columns ){
super( columns );
}
@Override
public void paste() {
// do nothing
}
}
【讨论】:
您可以覆盖JTextComponent 中的paste() 方法。
【讨论】: