通过按钮读取文本文件填充 jlist
Populate a jlist from text file read through button
代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser fileChooser = new JFileChooser();
//fileChooser.setCurrentDirectory(new File(System.getProperty("user.home")));
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION)
{
File selectedFile = fileChooser.getSelectedFile();
System.out.println("Selected file: " + selectedFile.getAbsolutePath());
DefaultListModel lista = new DefaultListModel();
JList jList1 = new JList();
try {
FileReader archivo = new FileReader(selectedFile.getAbsolutePath());
BufferedReader lector = new BufferedReader(archivo);
String texto = null;
while ((texto = lector.readLine()) != null) {
lista.addElement(texto);
//System.out.println("Lista:"+lista);
//System.out.println(texto);
}
jList1.setModel(lista);
System.out.println("jList1:"+jList1);
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
我正在尝试从通过 Read_file 按钮读取的文本文件填充 jlist
我能够正确获取文件路径和文件内容,我用 print 语句验证了这一点,但我的 jlist 仍然是空的。
在设计中,我检查了 jlist 的变量名,两者都与我在代码中使用的相匹配。
错误之处请指正
据我所知,您每次按下按钮时都会创建一个新的 JList
。您确实正确填写了 DefaultListModel
,但您分配给了一些 jList 而不是 UI 上的那个。
只需清除行:
JList jList1 = new JList();
然后 repaint
和 revalidate
它是 setModel
之后的容器
代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser fileChooser = new JFileChooser();
//fileChooser.setCurrentDirectory(new File(System.getProperty("user.home")));
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION)
{
File selectedFile = fileChooser.getSelectedFile();
System.out.println("Selected file: " + selectedFile.getAbsolutePath());
DefaultListModel lista = new DefaultListModel();
JList jList1 = new JList();
try {
FileReader archivo = new FileReader(selectedFile.getAbsolutePath());
BufferedReader lector = new BufferedReader(archivo);
String texto = null;
while ((texto = lector.readLine()) != null) {
lista.addElement(texto);
//System.out.println("Lista:"+lista);
//System.out.println(texto);
}
jList1.setModel(lista);
System.out.println("jList1:"+jList1);
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
我正在尝试从通过 Read_file 按钮读取的文本文件填充 jlist
我能够正确获取文件路径和文件内容,我用 print 语句验证了这一点,但我的 jlist 仍然是空的。 在设计中,我检查了 jlist 的变量名,两者都与我在代码中使用的相匹配。
错误之处请指正
据我所知,您每次按下按钮时都会创建一个新的 JList
。您确实正确填写了 DefaultListModel
,但您分配给了一些 jList 而不是 UI 上的那个。
只需清除行:
JList jList1 = new JList();
然后 repaint
和 revalidate
它是 setModel