我被困在一个java项目上。 我正在使用TXT文件,我从JList打开这些TXT文件。 由于我是一个完全的菜鸟,我花了几个小时来设法使JList工作。但现在我被困在JTextArea。 这个想法是这样的:单击JList中的项目(item =文件夹中的TXT文件),它应该打开JTextArea中的TXT文件来查看它。
..到目前为止,这是我的代码..有点长:
-JButton用于搜索并将TXT文件放在JList中:
JButton searchSearchButton = new JButton("Search");
searchSearchButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultListModel model1 = new DefaultListModel();
File dir = new File("C:\\Users\\Zoli\\Desktop\\New folder");
File[] matches = dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith(searchKeywordTextField.getText()) && name.endsWith(".txt");
}
});
for(File f : matches){
model1.addElement(f.getName());
}
searchList.setModel(model1);
}
});
searchSearchButton.setBounds(186, 43, 89, 23);
linuxSearchPane.add(searchSearchButton);
- 这是JTextArea和JList代码:
final JTextArea searchTextArea = new JTextArea();
JScrollPane searchTextAreaScrollPane = new JScrollPane(searchTextArea);
searchTextAreaScrollPane.setBounds(316, 43, 496, 430);
linuxSearchPane.add(searchTextAreaScrollPane);
final JList searchList = new JList();
searchList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
searchList.setVisibleRowCount(20);
searchList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
searchTextArea.setText("");
for(Object o : searchList.getSelectedValuesList()){
searchTextArea.append(o.toString()+"\r\n");
}
}
});
- 我设法做的是,当我从JList中选择一个项目时,它会打印出JTextArea中的项目名称,而不是它在TXT中包含的内容。 这是给你的照片: picture
任何人都可以帮我解决这个问题......我没有想法......我读过有关JList和JTextArea的内容,但没有任何内容可以指出我需要的内容......
请帮忙。
答案 0 :(得分:0)
我说它! 这是代码:
final JTextArea searchTextArea = new JTextArea();
JScrollPane searchTextAreaScrollPane = new JScrollPane(searchTextArea);
searchTextAreaScrollPane.setBounds(316, 43, 496, 430);
linuxSearchPane.add(searchTextAreaScrollPane);
final JList searchList = new JList();
searchList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
searchList.setVisibleRowCount(20);
searchList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
searchTextArea.setText("");
String root = "C:\\Users\\Zoli\\Desktop\\New folder\\";
String filename;
String lineRead = "";
String fileContent = "";
try {
for(Object o : searchList.getSelectedValuesList()){
filename = o.toString();
FileReader reader = new FileReader(root + filename);
BufferedReader buffer = new BufferedReader(reader);
while(lineRead != null){
try {
lineRead = buffer.readLine();
} catch (IOException e1) {
e1.printStackTrace();
}
if(lineRead != null){
fileContent = fileContent + lineRead + "\r\n";
searchTextArea.setText(fileContent);
}
}
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
此处还有图片,了解其工作原理:picture