- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的一些作业。我让它一直运行,直到我添加 FX。现在它将弹出一个带有标题 Pane 和标签的窗口,但代码的实际功能并未出现在窗口中。代码在 EventHandler 处停止运行,我不明白为什么或如何修复它。它是一个文本分析器,可以计算单词的出现次数并显示单词的计数。如果有人能指出代码错误的位置和原因以及如何修复它,我将不胜感激。
package application;
/**
* <h1>Word Occurrences</h1>
* The program counts the number of a times words
* appears in the text.
*
*
* @author
* @version 3.0
* @since 4/1/2020
*/
import java.net.MalformedURLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonBase;
import javafx.scene.control.Label;
import javafx.scene.control.Labeled;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.TilePane;
import javafx.scene.text.Text;
import javafx.scene.text.*;
public class TextAnalyzer extends Application {
/**
* Override method to produce the output *
* @param s first parameter in the start method
* @return Output
*/
//public TextAnalyzer() { }
@Override
public void start(Stage s) {
// title for the stage
s.setTitle("Text Analyzer");
// create a tile pane
TilePane title = new TilePane();
// create a label
Label l = new Label("Word : Count");
// Read in the file
URLReader obj = new URLReader();
// run
EventHandler event = new EventHandler<ActionEvent>() {
private Labeled TextLine;
public void handle(ActionEvent e) {
// 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();
this.TextLine.setText((String)entry.getKey() + " : " + entry.getValue());
}
/*for (Map.Entry<String, Integer> entry : map.entrySet()) {
TextLine.setText(entry.getKey() + " : " + entry.getValue());
}*/
}
};
title.getChildren().add(l);
Scene scene = new Scene(title, 400, 400);
s.setScene(scene);
s.show();
}
/**
* This is the main method which produces the window and contents
* from the start method
* @param args
*/
public static void main(String[] args) throws Exception {
launch(args);
//CreateTable();
}
}
--------------------------------
package application;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
/**
* This is the URL reader to read the URL into a string
* for processing.
*
* @return FileString
* @exception IOException on input error
* @see IOException
*
*/
public class URLReader {
String fileString;
//public URLReader() { }
public String reader() throws MalformedURLException {
// create the URL
URL file = new URL("http://shakespeare.mit.edu/macbeth/full.html");
// Open the URL stream and create readers convert to string
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(file.openStream()));
// write the output
StringBuilder response = new StringBuilder();
String inputLine;
while ((inputLine = reader.readLine()) != null)
response.append(inputLine);
// close reader
reader.close();
fileString = response.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("error");
}
return fileString.toString();
}
}
最佳答案
如上所述,将操作设置为您需要创建的 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 事件处理的好文章 link
此外,我建议在另一个线程的 setOnAction
中运行您的内容,而不是阻塞您的 UI。但这只是微调。
关于java - 我的 JavaFX 项目停止在 EventHandler 上运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375848/
我想问一下EventHandler之间的区别和 EventHandler . 之前我实现了一个 EventHandler ,带有自定义 EventArgs,可以从用户控件传递到父页面。 我想我需要申请
在C#中使用和使用有根本区别吗 event EventHandler和 EventHandler因为它们都产生与我所看到的相同的效果,除了使用 event 关键字会在智能感知中为您提供不同的图标。 最
我向事件添加了一个方法,但现在想在某些情况下从这些事件上删除该方法: public MyClassConstructor() { otherClassObj.OnMyDataReceived
我向事件添加了一个方法,但现在想在某些情况下从这些事件上删除该方法: public MyClassConstructor() { otherClassObj.OnMyDataReceived
最近一直在想这段代码有没有什么显着的区别: public event EventHandler SomeEvent; 还有这个: public delegate void MyEventHandler
假设你有这样的方法 private void FireEvent(EventHandler eventHandler, T eventArgs, string name) { var hand
我正在使用 GWT MVP 来开发应用程序。我看到 GWT MVP 代码中可以有两种事件处理程序,但我不太确定应该在哪个地方使用哪种事件处理程序: 1) AppController 中的 Handle
我看到一些代码使用 -= new EventHandler(anEvent) ,你能告诉我与 ' += new EventHandler' 有什么不同吗? 谢谢 最佳答案 一个将委托(delegate
我遇到了这样的 jQuery 片段: selector.eventHandler(...some code...).eventHandler(...some code...); 它有什么作用? 最佳答
我试图在指定时间内淡出一个文本框。此代码适用于 Windows Phone,但不适用于 Windows 8 应用程序。我进行了更改以修复尽可能多的错误。但我无法解决其中一个问题:cannot impl
我正在尝试在 Windows Phone 应用程序中实现一个计时器。它在 Windows Phone 应用程序 (Silverlight) 中工作正常,但它在 Windows Phone 空白应用程序
两者有什么区别? object.ProgressChanged += new EventHandler(object_ProgressChanged) object.ProgressChanged +
我已经阅读了一些关于此的主题,但我仍然不知道如何解决我的问题。我来自 Java,大部分是 C# 的新手 我想在动画结束时附加监听器: myStoryBoard.Completed += new Eve
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Can I customize automatic event handler generation in
我正在使用 axon 2.3.1 ,我有一个聚合类 public class MyAggregate extends AbstractAnnotatedAggregateRoot { @Aggre
我将 C# 与 Xamarin 结合使用,在使用 EventHandler 时出现此错误: The type or namespace name 'EventHandler' could not be
我正在阅读有关 EventHandlers 的 .NET 文档,但不理解来自 https://learn.microsoft.com/en-us/dotnet/standard/events/ 的这段
我的目的是重用从 ComboBox 类继承的 SelectedValueChanged 事件(该事件又从 ListControl 类继承) 在下面的代码中:SelectedValueChanged 标
以下代码允许在两个场景之间切换。 import javafx.application.*; import javafx.event.ActionEvent; import javafx.event.E
我有一个作业,其中我应该创建一个应用程序,将货币从卡塔尔里亚尔转换为 3 种选择之一(美元、欧元或英镑)。 我想成为一个酷男孩,并为我的应用程序提供了背景、标题和图标。但这还不够,我还决定不使用提交按
我是一名优秀的程序员,十分优秀!