Вопрос: Попытка получить тот же эффект, что и код ниже, только с JTextArea, поэтому я хочу, чтобы JTextArea читались и повторялись предложения, рекомендуемые каждый раз, когда пользователь вводит новое слово с ошибкой.Чтение JTextArea для Jazzy Spell Checker API
Ниже приведен рабочий пример с «System.in», который хорошо работает.
(Варс 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();
}
}
3 марта 2016 (Обновит е)
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);
}
А также делайте то, что рекомендует MadProgrammer, поскольку он знает свой Swing. –
Мне очень трудно прочитать JTextField .. По существу, я просто поместил JTextField в свой JToolBar с кнопкой рядом с ним и т. Д. Когда кнопка нажата, она вызывает событие. Моя проблема заключается в том, что JTextField читается системой, с которой я использовал этот InputStream is = new ByteArrayInputStream (jt.getText(). GetBytes (Charset.forName («UTF-8»)); «Но он пробовал снова вернуться к той же проблеме. – TravJav92
Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам. – MadProgrammer