Переопределить Field.setEditable(boolean editable)
для отслеживания ваших собственных редактируемых логических значений:
private boolean customEditable = true;
public void setEditable(boolean editable) {
super.setEditable(editable);
customEditable = editable;
// invalidate(); forces paint(Graphics graphics) to be called
}
Переопределить navigationClick(int status, int time)
, чтобы использовать это логическое значение для определения, реагировать ли на события щелчка:
protected boolean navigationClick(int status, int time) {
if (customEditable) fieldChangeNotify(1);
return true;
}
Если вам требуется пользовательский внешний вид для отключенного состояния, также переопределите paint(Graphics graphics)
, чтобы использовать другой цвет. В этом случае вам также нужно позвонить invalidate()
с номера setEditable()
.