class1 のフィールドのテキストを class2 の別のフィールドに設定する際に問題があります。基本的に、私は2つのクラスを持っています。クラス1には、ユーザーがファイル内の単語を検索できるようにするメソッドがあり(ファイルから読み取る)、単語が見つかったら、それをクラス2の「フィールド1」に設定したいと考えています。
たとえば、「さん」を検索すると、class2 で検索された単語には「さん」が表示され、2 番目の単語には「彩」が表示されます。
どこが間違っているのかわからず、プログラムにエラーは表示されません。どんな助けでも大歓迎です。前もって感謝します。
file.txt
San Aya
public class MyFileReader {
JTextField searchfield = new JTextField(10);
JPanel panel = new JPanel();
public MyFileReader() {
panel.add(new JLabel("Search:"));
panel.add(searchfield);
panel.setLayout(new GridLayout(5, 2));
int result = JOptionPane.showConfirmDialog(null, panel,
"Search", JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION) {
MyContentManager contentManager = new MyContentManager();
try {
String stringSearch = searchfield.getText();
BufferedReader bf = new BufferedReader(new FileReader("file.txt"));
int linecount = 0;
String line;
ArrayList<String> list = new ArrayList<String>();
while ((line = bf.readLine()) != null) {
list.add(line);
linecount++;
int indexfound = line.indexOf(stringSearch);
if (indexfound > -1) {
String[] word = line.split("\t");
String firstword = word[0];
String secondword = word[1];
contentManager.field1.setText(stringSearch);//This is the problem
contentManager.field2.setText(secondword);//This is the problem
}
}
bf.close();
} catch (IOException e) {
System.out.println("IO Error Occurred: " + e.toString());
}
}
}
public static void main(String[] args) {
new MyFileReader();
}
}
クラス2
public class MyContentManager {
JTextField field1 = new JTextField(10);
JTextField field2 = new JTextField(10);
JPanel panel = new JPanel();
public MyContentManager() {
panel.add(new JLabel("Searched For:"));
panel.add(field1);
panel.add(new JLabel("Second word:"));
panel.add(field2);
panel.setLayout(new GridLayout(5, 2));
int result = JOptionPane.showConfirmDialog(null, panel,
"Search found", JOptionPane.YES_NO_OPTION);
}
}