2016-03-26 59 views
0

我被困在一個java項目上。 我正在使用TXT文件,並且我已經從JList打開了這些TXT文件。 因爲我是一個總的noob在這,我花了幾個小時來設法使JList工作。但現在我被困在JTextArea。 想法是這樣的:點擊JList中的一個項目(item =文件夾中的一個TXT文件),它應該在JTextArea中打開該TXT文件來查看它。Java JList和JTextArea

..here是到目前爲止我的代碼..它是一個有點長:

-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

我知道了!!! 下面的代碼:

  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