gpt4 book ai didi

java - 阅读 JTextArea for Jazzy Spell Checker API

转载 作者:行者123 更新时间:2023-12-01 07:52:03 24 4
gpt4 key购买 nike

问题:尝试仅使用 JTextArea 获得与下面的代码相同的效果,因此我希望每次用户输入新的拼写错误单词时都能读取 JTextArea 并推荐拼写建议。

下面是“System.in”的工作示例,效果很好。

(Vars userField = JTextArea & dic.txt 是系统用于建议的英语语言列表)

代码 (1)

public SpellCheckExample() {
try {
SpellDictionary dictionary = new SpellDictionaryHashMap(new File(dic.txt));

spellCheck = new SpellChecker(dictionary);
spellCheck.addSpellCheckListener(this);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

while (true) {
System.out.print("Enter text to spell check: ");
String line = in.readLine();

if (line.length() <= 0)
break;
spellCheck.checkSpelling(new StringWordTokenizer(line));
}
} catch (Exception e) {
e.printStackTrace();
}
}

我一直在尝试:

代码(2)

public void spellChecker() throws IOException{


String userName = System.getProperty("user.home");
SpellDictionary dictionary = new SpellDictionaryHashMap(new File(userName+"/NetBeansProjects/"+"/project/src/dic.txt"));
SpellChecker spellCheck = new SpellChecker(dictionary);
spellCheck.addSpellCheckListener(this);


try{
StringReader sr = new StringReader(userField.getText());
BufferedReader br = new BufferedReader(sr);

while(true){
String line = br.readLine();

if(line.length()<=0)
break;
spellCheck.checkSpelling(new StringWordTokenizer(line));


}
}catch(IOException e){
e.printStackTrace();
}

}

2016 年 3 月 3 日(更新)

    public void spellChecker() throws IOException{
// getting context from my dic.txt file for the suggestions etc.
SpellDictionary dictionary = new SpellDictionaryHashMap(new File("/Users/myname/NetBeansProjects/LifeSaver/src/dic.txt"));
SpellChecker spellCheck = new SpellChecker(dictionary);


// jt = JTextField already defined in constructors and attemtpting to pass this into system and
InputStream is = new ByteArrayInputStream(jt.getText().getBytes(Charset.forName("UTF-8")));


//spellCheck.checkSpelling(new StringWordTokenizer(line)); ""ORIGINAL"""



// reccomending cast to wordfinder
spellCheck.checkSpelling(new StringWordTokenizer(is);
}

最佳答案

您不想尝试将控制台 UI 代码放入事件驱动的 GUI 中,因为它永远不会像那样工作。相反,您需要使用 GUI 事件来触发您的操作,而不是 readln 的。

您必须决定的第一件事是您希望使用哪个事件来触发拼写检查。为了我的钱,我会在 JTextField 中获取用户的输入,而不是在 JTextArea 中,因为使用前者,我们可以轻松捕获 <enter>通过在 JTextField 上添加 ActionListener 来按下按键。您始终可以同时使用两者,然后在对文本进行拼写检查后,将其移至 JTextArea,但这正是我的建议:

  • 使用 JTextField,
  • 向 JTextField 添加一个 ActionListener,以便在字段获得焦点并按下 Enter 键时收到通知,
  • 在此监听器中,通过调用 getText() 从 JTextField 中提取文本。在球场上
  • 然后对提取的文本运行拼写检查代码,
  • 并将结果输出到附近的 JTextArea。

关于java - 阅读 JTextArea for Jazzy Spell Checker API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com