Сортировка содержимого связанного списка в алфавитном порядке по названиям фильмов

Элемент управления JavaFX TextArea (начиная с версии 2.0.2) не поддерживает редактирование текстового шрифта (шрифты и т. д.).

Вы можете выделить непрерывные строки символов в TextArea, манипулируя выберите SelectRange в TextArea, как в следующем примере:

public class TextHighlight extends Application {
  public static void main(String[] args) { Application.launch(args); }
  @Override public void start(Stage stage) {
    final TextArea text = new TextArea("Here is some textz to highlight");
    text.setStyle("-fx-highlight-fill: lightgray; -fx-highlight-text-fill: firebrick; -fx-font-size: 20px;");
    text.setEditable(false);
    text.addEventFilter(MouseEvent.ANY, new EventHandler() {
      @Override public void handle(MouseEvent t) { t.consume(); }
    });

    stage.setScene(new Scene(text));
    stage.show();

    Platform.runLater(new Runnable() {
      @Override public void run() { text.selectRange(13, 18); }
    });
  }
}

Вы можете использовать приведенный выше код в качестве основы для переключения режима TextArea в режим только чтения, пока проверка орфографии происходит. Внедрите подсказку, чтобы найти и исправить каждое слово по очереди, пока проверка орфографии не будет завершена. Выполните запрос в отдельном диалоговом окне или панели. Демонстрация Jazzy, похоже, работает таким образом http://jazzy.sourceforge.net/demo.html , поэтому довольно легко преобразовать свой Swing UI в JavaFX.


В качестве альтернативы вы можете использовать элемент управления JavaFX WebView для переноса любой из многих javascript / html-инструментов проверки орфографии (например, http://www.javascriptspellcheck.com/ ) с использованием техники, аналогичной той, демонстрируется здесь: http://jewelsea.wordpress.com/2011/12/11/codemirror-based-code-editor-for-javafx/ .

-1
задан Mingdi 27 February 2019 в 17:28
поделиться

1 ответ

Вместо использования strcpy, почему бы просто не переместить указатели узла? Если это односвязный список, вам понадобится узел before, предшествующий узлу temp, поэтому, когда вы делаете temp = temp->next, вы сначала делаете before = temp. Вот как вы бы поступили с двусвязным узлом:

if (strcmp(/*...*/) > 0) {
    ReviewNode *swap = temp->next;
    temp->next = swap->next;
    swap->prev = temp->prev;
    swap->next = temp;
    temp->prev = swap;
}

Таким образом, вам не нужно копировать строки, которые могут занимать гораздо больше времени, чем простое перемещение узлов. Хороший способ узнать, как перемещать эти ссылки, - это взять карандаш и лист бумаги и смоделировать отсортированный список. Это требует времени, но в конечном итоге вы многому у него учитесь!

Без гораздо большей информации трудно понять, с какими проблемами вы сталкиваетесь. Удачи!

0
ответ дан LeoVen 27 February 2019 в 17:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: