我有大学项目,我必须从文本文件中读取每行的第一个单词,如下所示:
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中填充它,我的意思是我应该先将它保存在某个地方吗?
先谢谢
答案 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“关闭”,但我可以给你一些指示:
这些文件很有帮助:
答案 2 :(得分:1)
您可以使用String.split()
或使用indexOf
和substring
获取第一个字。
关于JComboBox有一个tutorial。 Java Swing类基于Model / View,因此您必须将字符串填充到JCombobox的模型中。
编辑:响应您的编辑,假设您已检索到这些值。然后,您确实可以将它们保存到特定的数据结构中。最好将检索这些值的代码放入一个单独的方法中。然后可以将从该方法返回的值(例如,List< String>)放入JComboBox中。