Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / IOException при попытке сделать объект Image / 11 сообщений из 11, страница 1 из 1
13.04.2006, 11:31
    #33663664
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
JDK 1.4

Простите, я ламер и пока только учусь.
Пытаюсь нарисовать картинку из файла на панели. Для этого сделал наследника JPanel.
Вот:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 import  javax.swing.JPanel;
 import  java.awt.*;
 import  java.io.*;
 import  java.awt.geom.*;
 import  javax.imageio.*;

 class  PicturePanel  extends  JPanel {
	
	 protected  String FileName;
	 protected  Image image;
	
	 public   void  paintComponent(Graphics g){
		Graphics2D g2 = (Graphics2D)g;
		Rectangle2D rect =  new  Rectangle2D. Double ( 0 ,  0 ,  100 ,  100 );
		g2.setPaint(Color.BLACK);
		g2.fill(rect);
	}
	
	 public  PicturePanel(String FileName){
		 this .FileName = FileName;
		File f =  new  File("jicontest.GIF");
		 try {
			 this .image = ImageIO.read( new  File("jicontest.GIF"));
		}
		 finally {
			System.out.println("123");
		}
	}

}

Строчку this.image = ImageIO.read(new File("jicontest.GIF")); Эклипс сразу подчеркнул красным. При попытке скомпилять начинает страшно матерится:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Severity	Description	Resource	In Folder	Location	Creation Time	Id
 2 	Unhandled exception type IOException	PicturePanel.java	ButtonTest	line  23 	 13  Апрель  2006  г.  11 : 13 : 46 	 562 
 1 	The  import  javax.swing.JPanel is never used	ButtonFrame.java	ButtonTest	line  14 	 13  Апрель  2006  г.  11 : 10 : 31 	 553 
 1 	The serializable  class  ButtonFrame does not declare a  static   final  serialVersionUID field of type  long 	ButtonFrame.java	ButtonTest	line  17 	 13  Апрель  2006  г.  11 : 10 : 31 	 554 
 1 	The field ButtonFrame.file is never read locally	ButtonFrame.java	ButtonTest	line  21 	 13  Апрель  2006  г.  11 : 10 : 31 	 555 
 1 	The local variable f is never read	ButtonFrame.java	ButtonTest	line  61 	 13  Апрель  2006  г.  11 : 10 : 31 	 556 
 1 	The  import  java.awt.event is never used	ButtonTest.java	ButtonTest	line  2 	 13  Апрель  2006  г.  10 : 37 : 27 	 464 
 1 	The  import  java.io is never used	ButtonTest.java	ButtonTest	line  4 	 13  Апрель  2006  г.  10 : 37 : 27 	 465 
 1 	The  import  javax.imageio is never used	ButtonTest.java	ButtonTest	line  5 	 13  Апрель  2006  г.  10 : 37 : 27 	 466 
 1 	The serializable  class  ColorButton does not declare a  static   final  serialVersionUID field of type  long 	ColorButton.java	ButtonTest	line  4 	 12  Апрель  2006  г.  15 : 57 : 15 	 389 
 1 	The serializable  class  PicturePanel does not declare a  static   final  serialVersionUID field of type  long 	PicturePanel.java	ButtonTest	line  7 	 13  Апрель  2006  г.  11 : 13 : 46 	 561 
Однако критическая ошибка только эта:
Severity Description Resource In Folder Location Creation Time Id
2 Unhandled exception type IOException PicturePanel.java ButtonTest line 23 13 Апрель 2006 г. 11:13:46 562


Помогите пожалуйста. Очень хочется фотку на панель поместить:)
...
Рейтинг: 0 / 0
13.04.2006, 12:22
    #33663887
ponomarevvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
catch (IOException e) добавь перед finally.
--С уважением, ponomarevvb--
...
Рейтинг: 0 / 0
13.04.2006, 17:50
    #33665374
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
Спасибо. Перекроил конструктор в соответствии с указаниями:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 public  PicturePanel(String FileName){
		 this .FileName = FileName;
		File f =  new  File("jicontest.GIF");
		 try {
			 this .image = ImageIO.read( new  File("jicontest.GIF"));
		}
		 catch  (IOException e){
			System.out.println("321");
		}
		 finally {
			System.out.println("123");
		}
	}
Вообще-то в той книжке по которой я учусь ( http://www.williamspublishing.com/Books/5-8459-0970-8.html) так и было велено сделать. Тоесть в листинге просто сделано через try catch. finally там, к слову сказать, не было.

Но откуда вылезает исключение? Ведь это затычка получается. Ошибок быть не должно. А то некрасиво как-то получается:)
...
Рейтинг: 0 / 0
13.04.2006, 17:51
    #33665378
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
Кстати: на консоль вывелось 123, а не 321. Тоесть в процессе запуска возникает какое-то другое исключение. Это баг, или фича?
...
Рейтинг: 0 / 0
13.04.2006, 17:52
    #33665387
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
SarinКстати: на консоль вывелось 123, а не 321. Тоесть в процессе запуска возникает какое-то другое исключение. Это баг, или фича?
тормас? ты ж в делфи писал? там же такой же блок используется.
finally {...} исполняется всегда. вне зависимости было или нет исключение.
...
Рейтинг: 0 / 0
13.04.2006, 17:53
    #33665392
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
А.Грасоff™ SarinКстати: на консоль вывелось 123, а не 321. Тоесть в процессе запуска возникает какое-то другое исключение. Это баг, или фича?
тормас? ты ж в делфи писал? там же такой же блок используется.
finally {...} исполняется всегда. вне зависимости было или нет исключение.ты ж книжку деловую читаешь - мог бы там
по диагонали прочтать про finally :)
...
Рейтинг: 0 / 0
13.04.2006, 17:59
    #33665413
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
Фубля! Тормоз!

Но сейчас мне наиболее интересно откуда вылизает эксцепшн.
...
Рейтинг: 0 / 0
13.04.2006, 18:04
    #33665424
javaScript != java
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
SarinФубля! Тормоз!

Но сейчас мне наиболее интересно откуда вылизает эксцепшн.

Не вылезает он.

В дельфи все эксепшины unchecked, в java - есть ещё checked exceptions.

IOException является checked.

При чтении картинки, может оказаться, что её нет на диске.
Что тогда делать?
Ничего.
Обрабатывать IOException.
...
Рейтинг: 0 / 0
13.04.2006, 18:16
    #33665463
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
javaScript != java
При чтении картинки, может оказаться, что её нет на диске.
Что тогда делать?
Ничего.
Обрабатывать IOException.
Это типо принудительно заставляют писать через обработку ИС?
...
Рейтинг: 0 / 0
13.04.2006, 20:37
    #33665688
javaScript != java
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
SarinЭто типо принудительно заставляют писать через обработку ИС?

Конечно.
...
Рейтинг: 0 / 0
13.04.2006, 21:37
    #33665747
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IOException при попытке сделать объект Image
javaScript != javaКонечно.
Ява очень спартанский язык. В нём начинают бить по голове очень больно не за ошибку, а только за мысль о ней:)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / IOException при попытке сделать объект Image / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]