golsa_6
دوشنبه 29 خرداد 1391, 19:37 عصر
با سلام،
من در چرخاندن و زوم کردن عکس ها مشکل دارم.
دارم برنامه ای می نویسم که یک سری عکس را در یک JPanel که داخل یک JFrame است، نشان میدهد.
در داخل کلاسی که از JPanel ارث برده، متد paintComponent را بازنویسی کرده ام که عکس مورد نظر من را با drawImage میکشد.
حالا در همین کلاس، من کد زیر را برای چرخاندن عکس مورد نظرم نوشتم، اما وقتی دکمه ی مربوطه را میزنم، به جای اینکه عکسم بچرخد، کل JPanel سیاه می شود!!
باید چکار کنم؟؟ احساس می کنم چون از repaint استفاده می کنم اینطور میشود، اما وقتی از g.drawImage استفاده کردم هیچ اتفاقی نیفتاد.
BufferedImage img;
try {
img = (BufferedImage)(ImageIO.read(new File(pic.get(ImageViewer.i))));
int w = img.getWidth();
int h = img.getHeight();
BufferedImage dimg = new BufferedImage(w, h, img.getType());
Graphics2D g = dimg.createGraphics();
g.rotate(Math.toRadians(10), w/2, h/2);
toDraw=dimg;
repaint();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
---------------------------------------------------------------------------------------------------
در ضمن در همین برنامه میخواهم اگر زوم کردم و عکسم در JPanel جا نمیشد، به JPanel اسکرول اضافه کند تا قسمتهای دیگر تصویر قابل مشاهده باشد.
آیا اصلا چنین کاری امکان پذیر است؟ چگونه و با چه دستوری؟
من در چرخاندن و زوم کردن عکس ها مشکل دارم.
دارم برنامه ای می نویسم که یک سری عکس را در یک JPanel که داخل یک JFrame است، نشان میدهد.
در داخل کلاسی که از JPanel ارث برده، متد paintComponent را بازنویسی کرده ام که عکس مورد نظر من را با drawImage میکشد.
حالا در همین کلاس، من کد زیر را برای چرخاندن عکس مورد نظرم نوشتم، اما وقتی دکمه ی مربوطه را میزنم، به جای اینکه عکسم بچرخد، کل JPanel سیاه می شود!!
باید چکار کنم؟؟ احساس می کنم چون از repaint استفاده می کنم اینطور میشود، اما وقتی از g.drawImage استفاده کردم هیچ اتفاقی نیفتاد.
BufferedImage img;
try {
img = (BufferedImage)(ImageIO.read(new File(pic.get(ImageViewer.i))));
int w = img.getWidth();
int h = img.getHeight();
BufferedImage dimg = new BufferedImage(w, h, img.getType());
Graphics2D g = dimg.createGraphics();
g.rotate(Math.toRadians(10), w/2, h/2);
toDraw=dimg;
repaint();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
---------------------------------------------------------------------------------------------------
در ضمن در همین برنامه میخواهم اگر زوم کردم و عکسم در JPanel جا نمیشد، به JPanel اسکرول اضافه کند تا قسمتهای دیگر تصویر قابل مشاهده باشد.
آیا اصلا چنین کاری امکان پذیر است؟ چگونه و با چه دستوری؟