Results 1 to 3 of 3
Thread: ArrayIndexOutOfBoundsException
- 12-14-2007, 12:10 PM #1
Member
- Join Date
- Nov 2007
- Posts
- 12
- Rep Power
- 0
ArrayIndexOutOfBoundsException
can anyone show solve the problem of this code.....
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Picture.main(Picture.java:163)
Java Code:import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.ImageIcon; import javax.swing.KeyStroke; import java.awt.FileDialog; import java.awt.Toolkit; import java.awt.Color; import java.awt.image.BufferedImage; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.io.File; import java.io.IOException; import java.net.URL; public final class Picture implements ActionListener { private BufferedImage image; // the rasterized image private JFrame frame; // on-screen view private String filename; // name of file // create a blank w-by-h image public Picture(int w, int h) { image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); // set to TYPE_INT_ARGB to support transparency filename = w + "-by-" + h; } // create an image by reading in the PNG, GIF, or JPEG from a filename public Picture(String filename) { this.filename = filename; try { // try to read from file in working directory File file = new File(filename); if (file.isFile()) { image = ImageIO.read(file); } // now try to read from file in same directory as this .class file else { URL url = getClass().getResource(filename); if (url == null) { url = new URL(filename); } image = ImageIO.read(url); } } catch (IOException e) { // e.printStackTrace(); throw new RuntimeException("Could not open file: " + filename); } // check that image was read in if (image == null) { throw new RuntimeException("Invalid image file: " + filename); } } // create an image by reading in the PNG, GIF, or JPEG from a file public Picture(File file) { try { image = ImageIO.read(file); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("Could not open file: " + file); } if (image == null) { throw new RuntimeException("Invalid image file: " + file); } } // to embed in a JPanel, JFrame or other GUI widget public JLabel getJLabel() { if (image == null) { return null; } // no image available ImageIcon icon = new ImageIcon(image); return new JLabel(icon); } // view on-screen, creating new frame if necessary public void show() { // create the GUI for viewing the image if needed if (frame == null) { frame = new JFrame(); JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("File"); menuBar.add(menu); JMenuItem menuItem1 = new JMenuItem(" Save... "); menuItem1.addActionListener(this); menuItem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); menu.add(menuItem1); frame.setJMenuBar(menuBar); frame.setContentPane(getJLabel()); // f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setTitle(filename); frame.setResizable(false); frame.pack(); frame.setVisible(true); } // draw frame.repaint(); } // accessor methods public int height() { return image.getHeight(null); } public int width() { return image.getWidth(null); } // return Color of pixel (i, j) public Color get(int i, int j) { return new Color(image.getRGB(i, j)); } // change color of pixel (i, j) to c public void set(int i, int j, Color c) { if (c == null) { throw new RuntimeException("can't set Color to null"); } image.setRGB(i, j, c.getRGB()); } // save to given filename - suffix must be png, jpg, or gif public void save(String name) { save(new File(name)); } // save to given filename - suffix must be png, jpg, or gif public void save(File file) { this.filename = file.getName(); if (frame != null) { frame.setTitle(filename); } String suffix = filename.substring(filename.lastIndexOf('.') + 1); suffix = suffix.toLowerCase(); if (suffix.equals("jpg") || suffix.equals("png")) { try { ImageIO.write(image, suffix, file); } catch (IOException e) { e.printStackTrace(); } } else { System.out.println("Error: filename must end in .jpg or .png"); } } // open a save dialog when the user selects "Save As" from the menu public void actionPerformed(ActionEvent e) { FileDialog chooser = new FileDialog(frame, "Use a .png or .jpg extension", FileDialog.SAVE); chooser.setVisible(true); if (chooser.getFile() != null) { save(chooser.getDirectory() + File.separator + chooser.getFile()); } } // test client: read in input file and display public static void main(String[] args) { Picture pic = new Picture(args[0]); pic.show(); } }
- 12-14-2007, 03:07 PM #2
Are you sure you are passing main a String argument. That's the only place in your code that I see any mention of arrays unless I missed something.
- 12-14-2007, 09:29 PM #3
Senior Member
- Join Date
- Nov 2007
- Location
- Newport, WA
- Posts
- 141
- Rep Power
- 0
Similar Threads
-
java.lang.ArrayIndexOutOfBoundsException
By riccian in forum New To JavaReplies: 0Last Post: 03-18-2008, 09:38 AM -
java.lang.ArrayIndexOutOfBoundsException
By mew in forum New To JavaReplies: 2Last Post: 12-02-2007, 09:40 PM -
Error: java.lang.ArrayIndexOutOfBoundsException
By fernando in forum Java 2DReplies: 1Last Post: 07-31-2007, 11:47 PM -
Error: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
By romina in forum New To JavaReplies: 1Last Post: 07-25-2007, 10:55 PM -
java.lang.ArrayIndexOutOfBoundsException
By Marcus in forum New To JavaReplies: 1Last Post: 07-05-2007, 05:15 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks