我正在寻找一些解决问题的聪明方法。我没有在网上找到任何解决方案。其实我会问你任何提示,线索......
我有一个包含许多JTextFields的对话框。它们代表一些对象的状态(让我们称之为“模型”)。 在某些情况下,应禁用其中一些字段。尽管如此,“模型”包含这些字段的值,我不想显示它们(它们是无关紧要的)。所以,我想在每个禁用的字段中设置“n / A”值(总是在它被禁用时)。
我唯一的想法是创建CustomJTextBox extends JTextBox
并覆盖setText()
方法:
class CustomTextField extends JTextField {
//... constructors
@Override
public void setText(String s){
if(!this.isEnabled()){
super.setText("n/A");
} else {
super.setText(s);
}
}
}
但它有很多弱点:D
我想它应该存在其他一些approch ......你能给出任何提示吗?
答案 0 :(得分:2)
使用static factory method,而不是扩展JTextComponent
,讨论here。在工厂中,添加一个DocumentListener
来强制执行您的要求。