填充从文本文件的JList通过按钮读取

问题描述:

enter image description here填充从文本文件的JList通过按钮读取

代码:

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

我能取文件路径和正确的文件的内容,我用打印语句进行了验证,但我的jlist仍然是空的。 在设计中,我检查了jlist的变量名称,这两个名称都与我在代码中使用的名称相匹配。

请给我建议的错误。

从我看到你每次按下按钮时创建一个新的JList。您确实填写了DefaultListModel,但您将其分配给某个jList,而不是您在UI上的那个。

就明确行:

JList jList1 = new JList(); 

然后repaintrevalidate它的容器后setModel

+0

换句话说,你可以填充的jList1,但它是一个你永远不会放回到一个局部变量'JPanel' ..列表没问题,你不显示它。最好的情况是在你的用户界面上有一个Jlist对象,每当你点击按钮更新它的模型。无需删除整个列表。 – gvlachakis

+0

我编辑我的答案 – gvlachakis

+0

你已经完全正确地做了所有事情,但是你没有提出。你创建一个JList1,你填写它,但是你没有放在UI上。第一步:在您的用户界面上添加一个jlist,并回答我所称的问题。 – gvlachakis