я обновляю код, но он поднял новую ошибку в
List<String> temps = new LinkedList<String>();
ошибка:
error: type List не принимает параметры List temps = new LinkedList();
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if (selectedFile == null) {
return; // no file selected. Get out of here
}
String token1 = "";
Scanner inFile1 = null;
try {
inFile1 = new Scanner(selectedFile);
List<String> temps = new LinkedList<String>();
// while loop
while(inFile1.hasNext()){
// find next line
token1 = inFile1.next();
// initialize temps
temps.add(token1);
}
// close inFile1
inFile1.close();
// create array
String[] tempsArray = temps.toArray(new String[0]);
// for-each loop
String ArabicWord="";
for(String s : tempsArray){
ArabicWord = ArabicWord + " " + s;
}
String finalResult="";
for (String retval: ArabicWord.split(" ")){
ArabicStemmer Stemmer=new ArabicStemmer();
finalResult= finalResult + " " + String.valueOf(Stemmer.stemWord(retval));
}
jTextArea1.setText(finalResult);
}
catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
}
Я мог бы дать моему классу поле "Файл" для выбранного файла, например, называемый выбранным файлом:
private File selectedFile = null;
А затем в первом слушателе действий присвойте значение этому полю:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser=new JFileChooser();
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
selectedFile = chooser.getSelectedFile();
String filename=F.getName();
jTextField1.setText(filename);
}
}
И затем будет использовать selectedFile в следующем бите кода. Java жалуется на то, что вы пытаетесь инициализировать сканер, не перехватывая исключения, и поэтому вы должны следовать предложению об ошибке: поймайте свои исключения.
Например:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if (selectedFile == null) {
return; // no file selected. Get out of here
}
String token1 = "";
Scanner inFile1 = null;
try {
inFile1 = new Scanner(selectedFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
// .....
Вам определенно нужно прочитать учебное пособие или два о том, как обрабатывать исключения. Google поможет вам найти их.
редактировать
Вы заявляете в комментарии:
error: type List не принимает параметры List temps = new LinkedList();
Я боюсь, что это может быть связано с вашим импортированием java.awt.*
. Если ваш код имеет следующую строку:
import java.awt.*;
Удалите его, потому что вы путаете компилятор относительно того, какой тип списка вы пытаетесь использовать. Вы пытаетесь использовать java.util.List
но компилятор может думать, что вы используете java.awt.List
. Лучший способ исправить это - импортировать определенные классы awt, которые вы используете, а не использовать wild card *
для импорта. Иногда вам приходится полностью отказаться от импорта и просто использовать полностью указанные имена классов в вашем коде. Например, иногда вам нужно идти по маршруту:
java.util.List<String> myList = new java.util.LinkedList<String>();