Как указано выше, установите действие на startButton
, которое необходимо создать, и после этого установите действие, как это:
startButton.setOnAction((event) -> {
System.out.println(„Start Button pressed!“);
// variables
String inputString = null;
// Read in the file
URLReader obj = new URLReader();
// string from URLReader
try {
inputString = obj.reader();
} catch (MalformedURLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
// word array
String[] wordsArray = inputString.split("\\s+");
// mapping the array
Map<String, Integer> map = new HashMap<>();
String[] var10 = wordsArray;
int var9 = wordsArray.length;
// count words
//for (String word : wordsArray) {
for(int var8 = 0; var8 < var9; ++var8) {
String word = var10[var8];
if (map.containsKey(word)) {
int count = map.get(word);
map.put(word, count + 1);
} else {
map.put(word, 1);
}
}
// output
Iterator var13 = map.entrySet().iterator();
while(var13.hasNext()) {
Entry<String, Integer> entry = (Entry)var13.next();
System.out.println((String)entry.getKey() + " : " +
entry.getValue());
}
/*for (Map.Entry<String, Integer> entry : map.entrySet()) {
TextLine.setText(entry.getKey() + " : " + entry.getValue());}*/
});
Кроме того, создайте / определите свой Label
private Labeled TextLine; за пределами setOnAction
, как вы сделали с Label l
.
Чем, если вы хотите обновить текст метки TextLine
, обновите его внутри setOnAction
Вот Хорошая статья о Java Обработка событий FX ссылка
Кроме того, я бы рекомендовал запускать ваши вещи внутри setOnAction
в другом потоке, чтобы не блокировать ваш пользовательский интерфейс. Но это просто прекрасная настройка.