テキストファイルから各行の最初の単語を読み込み、コンボボックスに入力します

私は次のようなテキストファイルからすべての行の最初の単語を読まなければならない大学のプロジェクトを持っています:

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でそれを設定することができます、私はどこか最初にそれを保存する必要がありますか?

前もって感謝します

1
JComboBoxを設定するには: stackoverflow.com/questions/1291704 /…
追加された 著者 Patrick,
まず、Stackoverflowへようこそ。第2に、「最初のトークンを取得する方法」と「JComboBoxを実装する方法」のような2つの質問がある場合は、それらを一緒に梱包するのではなく、2つの異なる質問をすることを検討してください。いずれかの問題のある方のために、将来の検索を行います。
追加された 著者 Patrick,

3 答え

String.split()を使用するか、 indexOfsubstring を使用して最初の単語を取得できます。

JComboBoxについては、チュートリアルがあります。 Java SwingクラスはModel/Viewに基づいているため、JComboboxのモデルに文字列を入力する必要があります。

EDIT: In response to your edit, suppose you have retrieved the values. Then you can indeed save them to a specific data structure. It would be preferable to make the code that retrieves those values into a separate method. The values returned from that method (in, for example, a List) can then be put into the JComboBox.

1
追加された
コードを自分で書く必要があります。しかし、私の答えで何かが明確でない場合は、お気軽にお尋ねください。
追加された 著者 S.L. Barth,
私がリンクしているチュートリアルにはいくつかのデモがあります。 CustomComboBox などがあります。私はちょうどComboBoxModelを直接操作する必要がないことに気付きました。あなたのような単純なケースでは、値を直接コンストラクタを使用します。
追加された 著者 S.L. Barth,
ご回答有難うございます。これを行うための関連するコードはありますか?
追加された 著者 Rockwire,
私はあなたが上記の仕事を達成するのに役立つ、私が参照できるリンクを持っていますか?手伝ってくれてありがとう。
追加された 著者 Rockwire,

テキストファイルから行を読み込む方法が分かっている場合は、 String.split 関数です。その場合、通常の配列インデクサである[]演算子で最初の文字列を得ることができる配列が得られます。

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

編集に答えるには、コンストラクタの1つ、たとえばオブジェクト配列を使用するか、 JComboBox.addItem(Object)関数

後者には例があります。コンストラクタを持つものに関しては、オブジェクトの配列を自分で作成するか、すべての要素を追加した配列を使用して、 ArrayList.toArray()関数です。

1
追加された

私はJavaで "ダウン"していませんが、私はあなたにいくつかの指針を与えることができます:

  • ファイルを読むことができ、おそらく行を読むことができます。
  • 各行は(恐らく)スペースで区切られているので、あなたが調べる必要があるのはString.split関数です。
  • 文字列を分割したら、配列インデックス 0 を使用して必要な情報を取得できます。
  • JComboBoxにsplit_string [0]を追加する場合です。

文書は大きな助けとなります:

String JComboBox

1
追加された