Results 1 to 1 of 1
- 11-28-2009, 04:37 AM #1
Member
- Join Date
- Oct 2009
- Posts
- 11
- Rep Power
- 0
Once again, I need help. Recursion and displaying multiple images in a window.
Hi all,
Once again I am in need of help. I am working on a program for my data structures class and I am ready to pull my hair out. Its almost the end of my semester and I have several programs to complete with little help from my prof.
The assignment is to write a program that displays images in a window and then recursively tiling the images to each corner. The program needs to prompt the user for 3 things, a scaling factor (.1 - .9) for decreasing the size of the images, a minimal size in pixels to scale down to, and 4 different images to be tiled.
I have been able to get it working using one image, but when I prompt the user for a second image file, the program will only display the second file. I could be wrong and it may display the first image fast and then repaint with the second image and I am just not seeing it. Right now, I have it set to recursively tile a single image to all for corners of the window. I need to be able to have different images at each corner, but I don't know how to do it. I can promt the user for more than one file, but I get lost after that.
Any help will be appreciated. I've been working on this for days and my professor isn't a big help. He just answers questions with questions and confuses everyone more than they were previously.
Below is my code...
Thanks
Java Code:import java.util.*; import java.awt.Graphics; import java.awt.Panel; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; public class ImageRecursion extends Panel { private static BufferedImage image; private int size; private double sc; private static int imageWidth; private static int imageHeight; private static int i = 1; public ImageRecursion(File file, double scale, int minSize) { size = minSize; sc = scale; try { image = ImageIO.read(file); } catch (IOException ie) { ie.printStackTrace(); } } public void paint( Graphics g) //paints the original image in the entire window { imageHeight = image.getHeight(); imageWidth = image.getWidth(); g.drawImage(image, 0, 0, imageWidth, imageHeight, null); tileImage(imageWidth, imageHeight, image, g); } private void tileImage(int width, int height, BufferedImage img, Graphics g) //paints the recursive images { if(height > size) { g.drawImage(img, 0, 0, width, height, null); //top left g.drawImage(img, imageWidth - width, 0, width, height, null); //top right g.drawImage(img, 0, imageHeight - height, width, height, null); //bottom left g.drawImage(img, imageWidth - width, imageHeight - height, width, height, null); //bottom right tileImage((int)(width * sc), (int)(height * sc), img, g); } } static public void main(String args[]) throws Exception { JFrame frame = new JFrame("Image Resizing"); String minSizeIn = JOptionPane.showInputDialog("Enter minimum image size in pixels: "); int mSI = Integer.parseInt(minSizeIn); String scaleFactor = JOptionPane.showInputDialog("Enter scaling factor in fractional notation (.1 to .9): "); double sF = Double.parseDouble(scaleFactor); // while (i <=4) { FileFilter ff = new FileNameExtensionFilter("JPG, GIF, & PNG Image Files", "jpg","jpeg", "gif", "png"); JFileChooser file1 = new JFileChooser(); file1.addChoosableFileFilter(ff); int returnVal = file1.showDialog(null, "Open file"); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = file1.getSelectedFile(); Panel panel = new ImageRecursion(file,sF,mSI); frame.getContentPane().add(panel); //i++; } JFileChooser file2 = new JFileChooser(); file2.addChoosableFileFilter(ff); int returnVal2 = file2.showDialog(null, "Open file"); if (returnVal2 == JFileChooser.APPROVE_OPTION) { File file = file2.getSelectedFile(); Panel panel = new ImageRecursion(file,sF,mSI); frame.getContentPane().add(panel); //i++; } frame.setSize(image.getWidth(), image.getHeight()+40); //frame.setSize(imageWidth, imageHeight); //frame.setSize(1000, 1000); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); //i++; } } }
Similar Threads
-
displaying multiple tabels information in single window
By mailsatya in forum AWT / SwingReplies: 3Last Post: 10-12-2009, 03:03 PM -
Proble displaying images dynamically in jsp
By javaxprogrammer in forum JavaServer Pages (JSP) and JSTLReplies: 0Last Post: 03-09-2009, 09:13 AM -
Displaying large images
By pir8ped in forum AWT / SwingReplies: 2Last Post: 01-21-2009, 10:20 PM -
[SOLVED] Need help in displaying images
By kirly in forum Advanced JavaReplies: 3Last Post: 10-21-2008, 06:36 AM -
Images not displaying in JSP in IE7
By chadscc in forum Advanced JavaReplies: 0Last Post: 11-13-2007, 04:24 PM
Bookmarks