Javafx Red подчеркивание в TextField [дубликат]

Другим вариантом, если производительность является проблемой, является использование расширения data.table для расширения reshape2 расплава & amp; dcast functions

( Ссылка: эффективная перестройка с использованием data.tables )

library(data.table)

setDT(dat1)
dcast(dat1, name ~ numbers, value.var = "value")

#          name          1          2         3         4
# 1:  firstName  0.1836433 -0.8356286 1.5952808 0.3295078
# 2: secondName -0.8204684  0.4874291 0.7383247 0.5757814

И, как и в data.table v1.9.6, мы можем использовать несколько столбцов

## add an extra column
dat1[, value2 := value * 2]

## cast multiple value columns
dcast(dat1, name ~ numbers, value.var = c("value", "value2"))

#          name    value_1    value_2   value_3   value_4   value2_1   value2_2 value2_3  value2_4
# 1:  firstName  0.1836433 -0.8356286 1.5952808 0.3295078  0.3672866 -1.6712572 3.190562 0.6590155
# 2: secondName -0.8204684  0.4874291 0.7383247 0.5757814 -1.6409368  0.9748581 1.476649 1.1515627

7
задан Marcelo 3 February 2012 в 14:43
поделиться

4 ответа

Элемент управления 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<MouseEvent>() {
      @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/ .

8
ответ дан jewelsea 22 August 2018 в 10:44
поделиться

Возможно ... вид

Я знаю, что этот вопрос решен, но я нашел способ исправить эту проблему и подумал, что я опубликую ее для других людей, которые также наткнулись на эту запись , Это немного взломанно, но он работает в крайнем случае, если вам нужно выделить текст в TextArea и не хотите принимать неудовлетворительный «невозможный» ответ.

  1. Извлеките цвет фона TextArea и цвет переднего плана текстового шрифта
  2. Вычислить бит наивысшего контраста между цветом переднего и заднего фона
  3. Поместить прямоугольник вокруг нужного текста
  4. Установите цвет прямоугольника на цвет фона
  5. Установите blendmode прямоугольника в ячейку с наивысшим контрастом
  6. Отключите прямоугольник

Прямоугольник теперь идеально сочетается с фоном, но изменит цвет текста. Отключение прямоугольника означает, что он не будет выглядеть как нечто большее, чем аскетичный для пользователя - например, действия, подобные щелчку на прямоугольнике, не будут иметь неожиданного эффекта.

Вы можете слегка настроить этот метод, если различные цвета желательны.

Я могу опубликовать детали реализации, если люди заинтересованы, скептически настроены, или если сложно работать.

5
ответ дан en_Knight 22 August 2018 в 10:44
поделиться
  • 1
    Я хотел бы узнать больше об этом решении. Особенно # 3. Откуда вы знаете, где разместить прямоугольник; что происходит, когда окно / TextArea перемещается; как вы справляетесь с исключениями, такими как полузакрытый или скрытый текст; что происходит, когда прокручивается TextArea? – Adam Jensen 31 July 2014 в 02:56
  • 2
    Ой, чувак, это взломанно! престижность! ;-) – Limited Atonement 2 February 2018 в 18:28
  • 3
    Как вы решаете, где разместить этот прямоугольник? Например, я хочу выделить символы 7-13 (и я не знаю, включает ли это разрыв строки !!), как я могу решить, где находится верхний левый прямоугольник? – Limited Atonement 2 February 2018 в 19:45

С помощью JavaFX 8 вы можете использовать TextFlow

. Вы можете определить определенные классы стиля для жирного, красного, зеленого или любого типа Тексты и упорядочить их в TextFlow при назначении желаемого стиля класс для каждого текста

5
ответ дан Ruturaj Patil 22 August 2018 в 10:44
поделиться

RichTextFX позволяет добавлять стиль в текстовые диапазоны.

13
ответ дан Tomas Mikula 22 August 2018 в 10:44
поделиться
Другие вопросы по тегам:

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