【问题标题】:Read the first word of each line from a text file and then populate to Combo box从文本文件中读取每行的第一个单词,然后填充到组合框
【发布时间】:2011-12-17 04:09:14
【问题描述】:

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

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 中填充它,我的意思是我应该先将它保存在某个地方吗?

提前致谢

【问题讨论】:

  • 首先,欢迎来到 Stackoverflow。其次,如果您有两个问题,例如“我如何获得一行的第一个标记”和“我如何填充 JComboBox”,请考虑让它们成为两个不同的问题,而不是将它们打包在一起。这将使将来搜索有任何问题的人更容易。

标签: java swing


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    有一个关于 JComboBox 的tutorial。 Java Swing 类是基于 Model/View 的,所以你必须将字符串填充到 JCombobox 的 Model 中。

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

    【讨论】:

    • 感谢您的回答。你有任何相关的代码吗?
    • 您必须自己编写代码。但如果我的回答还不清楚,请随时提问。
    • 你有什么链接可以参考,可以帮助我完成上述任务。感谢您的帮助。
    • 我链接到的教程有一些演示。例如,查看CustomComboBox 的构造函数。我刚刚意识到您不必直接使用 ComboBoxModel,在像您这样简单的情况下,您可以将值直接传递给 constructor
    【解决方案3】:

    我对 Java 并没有“失望”,但是我可以给你一些建议:

    • 可以读取文件,而且大概可以读取一行。
    • 每一行(大概)用空格分隔,所以您需要查找的是一个 String.split 函数
    • 拆分字符串后,您将能够使用数组索引 0 来获取所需的信息。
    • 那么就只是在JComboBox中加入split_string[0]的情况。

    这些文件很有帮助:

    String JComboBox

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2014-10-18
      • 1970-01-01
      相关资源
      最近更新 更多