PDA

View Full Version : سوال: نمايش عكس روي فرم با جاوا



ravand
یک شنبه 27 فروردین 1391, 11:05 صبح
سلام
من اين همه توي گوگل اين مطلب رو سرچ كردم چيزي گيرم نيومد.
در صورتي كه در زبان هاي ديگه اين كار ساده ترين بخش از زبان هست.
من فقط ميخوام يه عكس رو كه در يكي از پوشه هاي درايوم هست رو روي فرم نمايش بدم .
همين.
حالا اگه نمايش عكس در زمينه ي فرم رو هم توضيح بديد ممنون ميشم.
متشكرم.

spiderman200700
یک شنبه 27 فروردین 1391, 11:42 صبح
میخوای با کد نویسی این کار رو بکنی ، یا میخوای توی محیط و ویژوال انجامش بدی؟

ravand
یک شنبه 27 فروردین 1391, 11:43 صبح
ميخوام با كد نويسي اين كار رو انجام بدم.
متشكرم

ravand
یک شنبه 27 فروردین 1391, 12:03 عصر
حالا اگه توي محيط ويژوال هم بلديد بد نيست بگيد.

spiderman200700
یک شنبه 27 فروردین 1391, 18:23 عصر
یه مثال ساده واست نوشتم:
public class Image extends JFrame {

public Image(){
super("test Image on a frame");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);

ImageIcon img=new ImageIcon("F:\\image.jpg");
JLabel imgLabel=new JLabel(img);

getContentPane().add(imgLabel);
setVisible(true);
}

public static void main(String args[]){
new Image();
}
}

برای محیط ویژوال هم چون من خودم با NetBeans کار میکنم، کار هایی رو که توی اون باید انجام بدی رو میگم.
توی NetBeans باید یه Label بندازی روی فرم، بعدش از قسمت properties مربوط به label ، میری توی قسمت icon و اونجا عکسی رو که میخوای انتخاب میکنی. به همین راحتی.

ravand
یک شنبه 27 فروردین 1391, 19:28 عصر
اين كدي كه شما نوشتيد رو تست كردم ولي كار نميكنه و اخطار ميده.
يه بار با نام Image.java ذخيره كردم و تست كردم.
يه بارم با JFrame.java.
ولي كار نكرد.

ravand
یک شنبه 27 فروردین 1391, 19:49 عصر
عكس من توي پوشه ي bin هست پس به اين شكل ميشه .
با اين حال اخظار ميده:

ImageIcon img=new ImageIcon("F:\\jdk\\bin\\ali.gif");

spiderman200700
یک شنبه 27 فروردین 1391, 22:17 عصر
لطفا خطایی رو که میده رو اینجا بذارید تا کمکتون کنم.

ravand
دوشنبه 28 فروردین 1391, 10:55 صبح
اول امدم فايل زير رو با نام image.java ذخيره كردم:

public class Image extends JFrame {

public Image(){
super("test Image on a frame");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);

ImageIcon img=new ImageIcon("F:\\jdk\\bin\\ali.gif");
JLabel imgLabel=new JLabel(img);

getContentPane().add(imgLabel);
setVisible(true);
}

public static void main(String args[]){
new Image();
}
}
بعد امدم توي برنامه ي command prompt اين فرمان رو اجرا كردم:



C:\Documents and Settings\user>f:

F:\>cd jdk

F:\jdk>cd bin

F:\jdk\bin>javac Image.java
Image.java:1: cannot find symbol
symbol: class JFrame
public class Image extends JFrame {
^
Image.java:5: cannot find symbol
symbol : method setSize(int,int)
location: class Image
setSize(800, 600);
^
Image.java:6: cannot find symbol
symbol : variable EXIT_ON_CLOSE
location: class Image
setDefaultCloseOperation(EXIT_ON_CLOSE);
^
Image.java:8: cannot find symbol
symbol : class ImageIcon
location: class Image
ImageIcon img=new ImageIcon("F:\\jdk\\bin\\ali.gif");
^
Image.java:8: cannot find symbol
symbol : class ImageIcon
location: class Image
ImageIcon img=new ImageIcon("F:\\jdk\\bin\\ali.gif");
^
Image.java:9: cannot find symbol
symbol : class JLabel
location: class Image
JLabel imgLabel=new JLabel(img);
^
Image.java:9: cannot find symbol
symbol : class JLabel
location: class Image
JLabel imgLabel=new JLabel(img);
^
Image.java:11: cannot find symbol
symbol : method getContentPane()
location: class Image
getContentPane().add(imgLabel);
^
Image.java:12: cannot find symbol
symbol : method setVisible(boolean)
location: class Image
setVisible(true);
^
9 errors

F:\jdk\bin>
و اخطار داد.
عكس رو هم در همين پوشه ي bin قرار دادم.

spiderman200700
دوشنبه 28 فروردین 1391, 12:47 عصر
واسه من اجرا میشه و مشکلی نداره.
برنامه رو اینطوری تغییر بده و بعد اجراش کن ببین اجرا میشه یا نه.
public class Image extends JFrame {

public Image(){
super("test Image on a frame");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);

JLabel imgLabel=new JLabel("Hello World");

getContentPane().add(imgLabel);
setVisible(true);
}

public static void main(String args[]){
new Image();
}
}

ravand
دوشنبه 28 فروردین 1391, 17:18 عصر
بازم بهم خطا ميده:


F:\jdk\bin>javac Image.java
Image.java:1: cannot find symbol
symbol: class JFrame
public class Image extends JFrame {
^
Image.java:5: cannot find symbol
symbol : method setSize(int,int)
location: class Image
setSize(800, 600);
^
Image.java:6: cannot find symbol
symbol : variable EXIT_ON_CLOSE
location: class Image
setDefaultCloseOperation(EXIT_ON_CLOSE);
^
Image.java:8: cannot find symbol
symbol : class JLabel
location: class Image
JLabel imgLabel=new JLabel("Hello World");
^
Image.java:8: cannot find symbol
symbol : class JLabel
location: class Image
JLabel imgLabel=new JLabel("Hello World");
^
Image.java:10: cannot find symbol
symbol : method getContentPane()
location: class Image
getContentPane().add(imgLabel);
^
Image.java:11: cannot find symbol
symbol : method setVisible(boolean)
location: class Image
setVisible(true);
^
7 errors

spiderman200700
دوشنبه 28 فروردین 1391, 21:34 عصر
این کد واسه من بدون هیچ مشکلی اجرا میشه.
به نظر من سعی کن با یه IDE کار کنی، این سبکی که تو داری کد میزنی، خیلی وقته که منسوخ شده.
در هر صورت موفق باشی.

ravand
دوشنبه 28 فروردین 1391, 21:41 عصر
ممنون داداش.
من يه كد ديگه گير اوردم كه عكس رو با برچسب نمايش ميده.
ولي نميدونم چرا اين كد برام كار نميكنه.
اينكه مي بيني من دارم سعي ميكنم تمام كارهام رو با كدنويسي انجام بدم از اين كارم هدف دارم.
من به اين نتيجه رسيدم كه آدم بايد عمق كدنويسي رو بدونه.
اينطوري فهم من از برنامه نويسي بيشتر ميشه.
براي اجراي فرامين توي command prompt هم يه فكري كردم سرعتم رو بيشتر كنه.
من همه ي فرامين رو توي notepad مي نويسم و با پسوند .bat ذخيره ميكنم ، يه فايل ايجاد ميشه كه با كليك روش همه ي مراحل رو پشت سر هم انجام ميده.
اينم سايت خوبيه براي جاوا:http://www.javabeginner.com
متشكرم.

spiderman200700
چهارشنبه 30 فروردین 1391, 12:23 عصر
من با نظرت موافقم.
ولی وقتی میگم با IDE کار کن منظورم این نیست که با محیط ویژوالش کار کنی.
توی IDE ها هم میتونی همه ی کارها رو با کد نویسی انجام بدی(دقیقا مثل notepad ).
فقط توی IDE ها مشکلی برای اجرای برنامه نداری و از درسر های اجرای دستیه برنامه ها خلاص میشی.
فکر نمیکنم اجرای راحت برنامه ها برای یاد گیری بهتر مشکلی پیش بیاره.:لبخندساده:

ravand
یک شنبه 03 اردیبهشت 1391, 12:35 عصر
بالاخره درستش كردم داداش.:لبخند:

import java.awt.*;
import javax.swing.*;
public class be extends JFrame {

public be(){
super("test be on a frame");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);

ImageIcon img=new ImageIcon("F:\\jdk\\bin\\ali.gif");
JLabel imgLabel=new JLabel(img);

getContentPane().add(imgLabel);
setVisible(true);
}

public static void main(String args[]){
new be();
}
}
اينا رو براش نذاشته بوديم. اگه اشتباه نكنم بهش ميگن كتابخانه ي جاوا ، درسته؟

import java.awt.*;
import javax.swing.*;

spiderman200700
یک شنبه 03 اردیبهشت 1391, 21:05 عصر
خیلی جالبه. چون من احتمال هر مشکلی رو میدادم جز اینکه شما این کتابخونه ها رو import نکرده باشی.:متفکر:
تقصیر من بود چون فکر می کردم شما میدونی که باید این کتابخونه ها رو به برنامه اضافه کنی. چون فکر می کردم قبلا برنامه ی تحت دسکتاب حتی در حد ساخت یه پنجره ی خالی ، نوشتی. عذر میخوام.

ravand
یک شنبه 03 اردیبهشت 1391, 21:10 عصر
نه من هنوز برنامه ي تحت سيستم عامل به اون صورت كار نكردم. و بيشتر تحت وب بوده.
البته ويژوال بيسك كمي كار كردم و مدركش رو دارم ولي ويژوال بيسيك هم اينطوري نبود.
چون php كار كرده بودم اين زبان جاوا رو بهتر مي فهمم. ولي php از اين كتابخانه ها رو اولش نداره.
و با تگ شروع ميشه. خوبيش اينه كه php بخش شي گرايي هم داره و منم تا حدودي بلدم . همين php باعث شد من خيلي از مباحث جاوا رو هم بفهمم.

spiderman200700
یک شنبه 03 اردیبهشت 1391, 21:27 عصر
من منظورم برنامه ی تحت دسکتاپ با جاوا بود.
در هر صورت خوشحالم که فهمیدی مشکل کجاست.
موفق باشی