从文本文件中读取每行的第一个单词,然后填充到组合框

时间:2011-10-28 09:39:59

标签: java swing

我有大学项目,我必须从文本文件中读取每行的第一个单词,如下所示:

23123123213 Samuel classA
23423423423 Gina classC
23423423423 John classD

文本文件将通过3 JTextField更新,我能够理解。

但现在我必须填充所有行的第一个字(23123123213,23423423423和23423423423)JCombobox

我是java的新手,我甚至没有提示如何做到这一点。 我知道如何读写文本文件。

请有人帮我这样做吗?

我想出的代码如下:

import java.io.*;
public class FileRead 
{
 public static void main(String args[])
  {
  try{
  // Open the file that is the first 
  // command line parameter
  FileInputStream fstream = new FileInputStream("RokFile.txt");
  // Get the object of DataInputStream
  DataInputStream in = new DataInputStream(fstream);
  BufferedReader br = new BufferedReader(new InputStreamReader(in));
  String strLine;
  //Read File Line By Line
  while ((strLine = br.readLine()) != null)   {

      String[] delims = strLine.split(" ");
      String first = delims[0];
      System.out.println("First word: "+first);

  }
  //Close the input stream
  in.close();
    }catch (Exception e){//Catch exception if any
  System.err.println("Error: " + e.getMessage());
  }
  }
}

在大家的帮助下,我成功地从每一行中提取了第一个字符串 但是现在我怎么能在Jcombobox中填充它,我的意思是我应该先将它保存在某个地方吗?

先谢谢

3 个答案:

答案 0 :(得分:1)

如果您知道如何从文本文件中读取行,则可以使用String.split函数将每行分隔为分隔符。在这种情况下,你得到一个数组,你可以通过一个普通的数组索引器获得第一个字符串,即[]运算符。

String hello = "Hello world";
String[] delims = hello.split(" ");
String first = delims[0];

要回答您的编辑,请使用其构造函数(例如the one that takes an Object array)或使用JComboBox.addItem(Object)函数填充JComboBox。

后者有一个例子。关于具有构造函数的那个​​,您可以自己构建一个对象数组,或者使用一个arraylist来添加所有元素,然后使用ArrayList.toArray()函数获取一个数组。

答案 1 :(得分:1)

我没有使用Java“关闭”,但我可以给你一些指示:

  • 您可以阅读文件,并且可能会读取一行。
  • 每行(大概)用空格分隔,所以你需要查看的是String.split函数
  • 分割完字符串后,您就可以使用数组索引 0 来获取所需的信息。
  • 然后只是将split_string [0]添加到JComboBox的情况。

这些文件很有帮助:

String JComboBox

答案 2 :(得分:1)

您可以使用String.split()或使用indexOfsubstring获取第一个字。

关于JComboBox有一个tutorial。 Java Swing类基于Model / View,因此您必须将字符串填充到JCombobox的模型中。

编辑:响应您的编辑,假设您已检索到这些值。然后,您确实可以将它们保存到特定的数据结构中。最好将检索这些值的代码放入一个单独的方法中。然后可以将从该方法返回的值(例如,List< String>)放入JComboBox中。