2015-04-16 2 views
-1

Когда у меня есть список, содержащий URL-адреса локальных изображений, как их отображать?java: показывать изображения из списка

Вот мой код и files мой список, который имеет адреса картинок (локальные):

public void start(Stage primaryStage) { 
    try { 


     BorderPane root = new BorderPane(); 
     Scene scene = new Scene(root,400,400); 
     scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 


     FileChooser fc = new FileChooser(); 
     List<File> files = fc.showOpenMultipleDialog(primaryStage); 

     for(File file : files) { 
      System.out.println(file); 
     } 


    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 

так в основном «файл» являются гиперссылка (локальная) для моих изображений и я хочу dsiplay их

+0

но нет никакого разговора о списке там ... – chillinyo

+1

Список 'ListOfUrls' является' 'Список , как вы можете вызвать конструктор файла? вам не нужно перебирать элементы списка? – Alexander

+0

Ну, как вы хотите их отобразить? Просто потому, что они хранятся в списке, не говорят нам, как вы собираетесь отображать их ... – Veluria

ответ

1

вам нужно сделать что-то вроде:

for(String s : ListOfURL){ 
    File f = new File(s) ; 
    Image image = ImageIO.read(f) ; 
} 
+0

hmm it s не работает – chillinyo

0

Это полностью рабочее приложение, которое делает то, что вы хотите, чтобы использовать его, как вы хотите!

import java.awt.Dimension; 
import java.awt.Image; 
import java.io.File; 
import java.io.IOException; 
import javax.imageio.ImageIO; 
import javax.swing.BoxLayout; 
import javax.swing.ImageIcon; 
import javax.swing.JFileChooser; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 

public class NewClass { 

    public static void main(String[] args) { 

     JFileChooser fc = new JFileChooser(); 
     fc.setMultiSelectionEnabled(true); 
     fc.showOpenDialog(fc); 

     File[] ListOfURL = fc.getSelectedFiles(); 

     JFrame frame = new JFrame(); 
     JPanel imagePanel = new JPanel(); 

     //ScrollPane to scroll though images 
     JScrollPane scroller = new JScrollPane(imagePanel); 

     imagePanel.setLayout(new BoxLayout(imagePanel, BoxLayout.PAGE_AXIS)); 

     //For each image URL in the list 
     for (File file : ListOfURL) { 
      try { 
       //Get image from file 
       Image image = ImageIO.read(file); 

       //Create and add image label 
       JLabel label = new JLabel(new ImageIcon(image)); 
       imagePanel.add(label); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

     //Set and show frame 
     frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     frame.add(scroller); 
     frame.setSize(300, 300); 
     frame.setMaximumSize(new Dimension(600, 800)); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 
+0

Я изменил свой код, сделайте это проще : Я хочу отобразить весь «файл», что означает все изображения, потому что «файл» - все URL-адреса ... – chillinyo

+0

У вас есть файл с списком URL-адресов? - Покажите пример того, как он отформатирован ... – Gready

+0

Посмотрите на мое редактирование вверху. я возвращаю «файл», у которого есть URL-адреса, которые я хочу отобразить. – chillinyo

Смежные вопросы