我正在寻找一些聪明的方法来解决我的问题。我在网上没有找到任何解决方案。其实我会问你任何提示,线索...
我有一个包含许多 JTextField 的对话框。它们代表某个对象的状态(我们称之为“模型”)。在某些情况下,其中一些字段应该被禁用。尽管事实上,“模型”包含这些字段的值,但我不想显示它们(它们无关紧要)。所以,我想在每个禁用字段中设置“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
- 它仅在使用 setText() 时有效
- 如果我使用 CustomTextFIeld(String s) 构造函数,它将不起作用 - 此构造函数不应该可用,这不直观
- 可能还有更多...
我想它应该存在其他一些方法......你能提供任何提示吗?