Archive for آوریل, 2008

برنامه نمایش عکس با جاوا

آوریل 22, 2008

درباره برنامه گرافیکی با جاوا فیلا صحبت کردم این یک نمونه از این برنامه هاست :

با استفاده از یک کلاس که با استفاده از خاصیت ارث بری در جاوا از فوق کلاس  JFrame ارث برده و ایجاد یک کلاس panel که این نیز از کلاس JPanel ارث برده و یک آرایه ی رشته ای از نام فایلهایی که می خواهیم نمایش دهیم؛ کار به آسانی انجام می شود :( برای آشنایی با کلاس ها نام آنها در Import ذکر شده است )

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.Timer;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author eprogrammer
 */
public class NewClass extends JFrame {
    public NewClass(){
        try {
            final panel p = new panel();
            this.add(p);
            this.setSize(800, 600);
            this.setVisible(true);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            for(int i=0;i<16;i++)
            {p.start(i);
            p.updateUI();
            Thread.sleep(1000 / 15);
            }
        } catch (InterruptedException ex) {
            Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
        }
       
    }
    public static void main(String []args) throws IOException{
       NewClass n=new NewClass();
    }
}
class panel extends JPanel{
    String str1;
    int counter=0;
    Image img;
    private Timer timer = new Timer();
    private BufferedImage i;
    panel(){
      
        this.setSize(10,10);
        this.setMaximumSize(new Dimension(100,100));
      }
  @Override
    public void paint(final Graphics g){
        g.clearRect(0,0, 800, 800);
        g.drawImage(img, 0, 0, null);
    }
   public void st(String str){
        try {
            Image image = ImageIO.read(new File(str));
            img = image;
            this.repaint();
        } catch (IOException ex) {
            Logger.getLogger(panel.class.getName()).log(Level.SEVERE, null, ex);
        }
   }
   public void start(int i) {
       String ImageArray[]={
           “001″,”002″,”003″,”004″,”005″,”006″,”007″,”008″,”009″,”010″,”011″,”012″,”013″,”014″,”015″,”016″,
           “017″,”018″,”019″,”020″,”021″,”022″,”023″,”024″,”025″,
       };
       try {
            Image image = ImageIO.read(new File(“DriveLetter:/FolderName/”+ImageArray[i]+/*extension*/”.jpg”));
            img=image;
            this.repaint();
        } catch (IOException ex) {
            Logger.getLogger(panel.class.getName()).log(Level.SEVERE, null, ex);
        }
     
    }
}

کار با فایل در سی++

آوریل 20, 2008

برای کار با فایل در سی++ راه های زیادی وجود دارد که یادگیری همه ی مفید است . بهتر از برای کار با فایل در مراحل اول با یک یا دو نوع کلی مار کرد و بعد از مهارت پیدا کردن در این زمینه به سراغ سایر روش ها بروید .

در اینجا بک برنامه ی ساده که از کابر تعدادی اسم می گیرد و در یک فایل می ریزد (با ترتیبی معکوس)و دوباره از فایل می خواند(باز هم با ترتیبی معکوس) و…(بقیه اش رو خودتون بخوانید):

#include <iostream.h>
#include <conio.h>
#include <fstream.h>
#include <cstring.h>

void swap(string &r,string &t){
 string o=r;
 r=t;
 t=o;
 }
 void print(string *str){
        for(int q=0;str[q]!=NULL;q++)
    cout<<str[q]<<” “;
         cout<<endl;
 }
main(){

fstream file_1(“c:/file1.txt”,ios::in|ios::out);
string *str_1=new string[100];
string *str_2=new string[100];
string name;
int s=0;
while(true){
cin>>name;
if(name[0]==’$')
 break;
//for(int i=0;i<name.length();i++)
 str_1[s]=name;
   s++;
  // file_1<<endl;
  // cout<<endl<<name;
}//end while I
//————-revers——————–
 for(int i=0;i<s;i++)
   str_2[s-i-1]=str_1[i];
  for(int i=0;i<s;i++)
  file_1<<str_2[i]<<endl;
file_1.close();
for(int i=0;i<s;i++)
 str_1[i]=str_2[i]=’ ‘;
//——————————————
cout<<”while <I> was ended”<<endl<<endl;
//——————————————
ifstream file_3(“c:/file1.txt”);
ofstream file_2(“c:/file2.txt”);
s=0;
while(!file_3.eof()){
getline(file_3,name);
 str_1[s++]= name;
 for(int i=0;i<s;i++)
   str_2[s-i-1]=str_1[i];

   //cout<<name;
 }
 for(int i=0;i<s;i++)
  file_2<<str_2[i]<<endl;
 file_2.close();
 file_3.close();
 //—————————————–
 cout<<”end while <II>”<<endl<<endl;
 ifstream file_4(“c:/file2.txt”);
 while(!file_4.eof()){
  getline(file_4,name);
  cout<<name<<endl;
 }
 file_4.close();
 //====================sort===============
 ifstream file_5(“c:/file2.txt”);
 int size=0;
 fstream file_6(“c:/file3.txt” ,ios::in|ios::out);
 int n=100;
 string *str=new string[n];
 int i=0    ;
 while(!file_5.eof()) {
 getline(file_5,str[i++]);
 size++;
 //file_6<<str[i]<<endl ;
 //cout<<str[i++]<<endl ;
 if(i==n){
  n*=2;
  string *str_1=new string[n];
   for(int r=0;r<(n/2);r)
    str_1[r]=str[r];
   str=str_1;
 }
 }
// for(int p=0;str[p]!=NULL;p++)
  //  cout<<str[p]<<endl;
// bool b=true ;
 int u=0;
 for(int t=0;t<size-1;t++)  {
  for(int i=0;i<size-1;i++)
  if(str[i]>str[i+1])
    {
       swap(str[i],str[i+1]);
       /*string o=str[i+1];
       str[i+1]=str[i];
       str[i]=o;                                              
       */
     // for(int q=0;str[q]!=NULL;q++)
    // cout<<str[q]<<” “;
       //  cout<<endl;
        print(str);

      }
 }
  for(int i=0;i<size;i++)
   file_6<<str[i]<<endl;

 getch();

}

 

 

جاوای گرافیکی

آوریل 16, 2008

زمان زیادی از ارایه ی جاوا گذشته و خیلی ها علاقه دارند که برنامه هاشون رو به صورت گرافیکی بنویسند . در جاوا می توانیم از دو روش برای ایجاد برنامه های گرافیکی استفاده کینیم یکی اینکه از محیطهای برنامه نویسی گرافیکی مثل NetBeans,Eclipse,Borland استفاده کنیم یا  اینکه به صورت دستی تمام کد های لازم رو بنویسیم (سخته ، نه؟!).

در روش اول شما بهد از تعیین نوع برنامه از قبیل(Application,Panel,Frame,…) فقط نماد های Component هایی  رو که می خواهید  داخل برنامه باشه رو می کشید و می اندازید توی صفحه (+یک لیوان آب از نوع خنک) و با کلیک راست روی اونها و انتخاب Event فعالیت مناسب رو برای اون در نطر می گیرید  و ویژگی های هر یک را تعیین می کنید.

در روش دوم اولا باید صفحه ی اصلی و سپس تمام Component  ها را طراحی و با استفاده از کد طرز قرار گیری آنها و اندازه و … را تعیین کنید .(اوووووووه خسته شدم ).مثلا:

public class MyFrame extens JFrame{

public MyFrame(){

setSize(300,300);
setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setTitle(“MyFrame”);

}

public static void main(String []args){

MyFrame my=new MyFrame():

}

}

یکی از محیط های مناسب برای روش آول استفاه از http://www.netbeans.org هست .امتحان کنید.

یک منبع خوب برای یادگیری زبان جاوا :

http://www.amazon.com/s?ie=UTF8&field-keywords=%26%2334%3Bcore%20java%26%2334%3B&page=1