有没有一种方便的方法来添加过滤器以输入到 scala.swing.TextComponent,以便用户只能输入整数/浮点数/其他?特别是,有没有办法将粘贴过滤到文本字段中?在 Java 中,我使用了 DocumentFilter 来做到这一点。我已经尝试了一些变化:
object inputField extends TextField{
peer.getDocument.asInstanceOf[AbstractDocument].setDocumentFilter(new DocumentFilter{
def insertString(fb: FilterBypass, offs: Integer, str: String, a: AttributeSet){
if(str.forall((c)=>c.isDigit)) super.insertString(fb, offs, str, a)
}
def replace(fb: FilterBypass, offs: Integer, l: Integer, str: String, a: AttributeSet){
if(str.forall((c)=>c.isDigit)) super.replace(fb, offs, l, str, a)
}
})
}
这是行不通的。我做错了吗,还是 Scala 忽略了文档过滤器?还有另一种方法可以做到这一点吗?如果需要的话,我可能完全可以使用 java.swing GUI。