我有一个问题,将class1中的字段文本设置为class2中的另一个字段。基本上,我有两个班。在class1中,我有一种方法允许用户搜索文件中的单词(从文件中读取),然后当找到单词时,我想将它设置为class2“field1”。如何将文本从class1设置为class2?
例如,如果我搜索“San”,在class2中搜索到的单词应显示“San”,而第二个单词应显示“Aya”。
我不知道哪里出错了,程序没有显示任何错误。任何帮助将不胜感激。提前致谢。
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();
}
}
类class2
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);
}
}
您的类需要类似于任何非Swing类的getter和setter方法。 class2的构造函数不应该有一个JOptionPane - 没有什么意义,因为它不是事件创建的。 – 2013-02-23 17:50:14
如何应用getter和setter方法? – Ramal 2013-02-23 17:56:48
你的其他问题是我没有看到你在哪里显示class2。如果课程没有显示,那么您永远不会看到搜索结果。 – 2013-02-23 18:31:07