LWUIT - показать мигающий курсор TextField, даже если поле пустое - PullRequest
1 голос
/ 20 сентября 2011

У меня есть TextField в форме.Этот TextField должен иметь фокус по умолчанию, который работает нормально.Теперь я бы хотел, чтобы пользователь знал об этом и показал ему, что он находится внутри TextField - поэтому курсор TextField должен отображаться и мигать.

Я нашел только drawTextFieldCursor в DefaultLookAndFeel,но я абсолютно не знаю, как применить это к моей TextField.

Любой помощи - и код будет принят!


Вот пример.У меня все еще не работает.

public void search2() {
    searchForm                      = new Form();
    TextField searchArea = new TextField();
    searchForm.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
    searchForm.addComponent(searchArea);
    searchArea.requestFocus();
    int i = Display.getInstance().getKeyCode(Display.GAME_FIRE);
    searchArea.keyPressed(i);
    searchArea.keyReleased(i);
    searchForm.show();
}

Что происходит: TextField фокусируется, его можно редактировать напрямую, отображается режим «Abc», но я действительно хочу показатьПользователь использует курсор, поэтому он ЗНАЕТ, что находится внутри TextField.Этого не происходит ... если бы кто-то мог показать мне какой-то рабочий код для этого ...

Ответы [ 2 ]

2 голосов
/ 22 сентября 2011

Вы хотите, чтобы текстовое поле находилось в режиме редактирования, а не отображало курсор текстового поля (что происходит при редактировании). Используйте requestFocus(), чтобы убедиться, что текстовое поле имеет фокус, затем используйте что-то вроде:

int i = Display.getInstance().getKeyCode(Display.GAME_FIRE);
tf.keyPressed(i);
tf.keyReleased(i);
0 голосов
/ 20 сентября 2011

У метода drawTextFieldCursor есть параметр Graphics, поэтому способ рисования курсора:

  1. получить TextField
  2. в public void paint(Graphics g) вы вызываете drawTextFieldCursor после установки методов рисования в TextField для рисования Графика.
...