Java выбирает txt файл и использует строку insaid в функции

1

я обновляю код, но он поднял новую ошибку в

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;
  }


    }   
Теги:
netbeans
swing
applet

1 ответ

1
Лучший ответ

Я мог бы дать моему классу поле "Файл" для выбранного файла, например, называемый выбранным файлом:

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>();
  • 0
    спасибо, это было очень полезно, но у меня появилась новая ошибка
  • 0
    @Malek: см. Редактировать, чтобы ответить.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню