// constructor initializes LogoAnimatorJPanel by loading images public LogoAnimatorJPanel() { try { // get reference to FileOpenService FileOpenService fileOpenService = (FileOpenService) ServiceManager.lookup("javax.jnlp.FileOpenService"); // display dialog that allows user to select multiple files FileContents[] contents = fileOpenService.openMultiFileDialog(null, null); // create array to store ImageIcon references images = new ImageIcon[contents.length]; // load the selected images for (int count = 0; count < images.length; count++) { // create byte array to store an image's data byte[] imageData = new byte[(int) contents[count].getLength()]; // get image's data and create image contents[count].getInputStream().read(imageData); images[count] = new ImageIcon(imageData); } // end for // this example assumes all images have the same width and height width = images[0].getIconWidth(); // get icon width height = images[0].getIconHeight(); // get icon height } // end try catch (Exception e) { e.printStackTrace(); } // end catch } // end LogoAnimatorJPanel constructor