Yazilar:

 Sponsor Reklam 


05.12.2013 (03:12)

 Robot Sınıfı ile Klavye Tuşlarını Kullanma 
Bilgisayarın insan gibi hareket etmesi ve benzeri maksatlarla bilgisayarın klavye tuşlarını kullanmasını sağlayabiliriz.

Bunun için Robot sınıfını kullanarak şu koddan yararlanabiliriz:

Robot robot = new Robot();

robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_N);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_N);

robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);

Şu paketlerin import edilmesi gerekir:
import java.awt.Robot;
import java.awt.event.KeyEvent;

Imza: admin

05.12.2013 (03:07)

 Satıriçi (inline) Thread'ler 
Programımızda anlık Thread ihtiyaçlarımız olursa şu şekilde satıriçi (inline) thread tanımlaması yapabiliriz:

(new Thread() {
  public void run() {
      System.out.println("Kodcu.net deneme 1");
      Thread.sleep(1000);
      System.out.println("Kodcu.net deneme 2");
  }
}).start();

Imza: admin

01.11.2013 (16:15)

 Dosyadaki Metinleri UTF-8'leştirme 
Java yoluyla bir metin dosyasındaki yazıları UTF-8 haline getirmek için şu koddan yararlanılabilir. Fakat UTF-8 olan metinleri bu işleme sokmamak gerekecektir.

public static void main(String[] args) {
  String currentPath = System.getProperty("user.dir");
  findFiles(currentPath);
}

public static void findFiles(String path) {
  File dir = new File(path);
  File[] files = dir.listFiles();

  if (files != null) {

      for (int i = 0; i < files.length; i++) {
        File file = files[i];
        if (file.isFile()) {
            File newFile = new File(".....new path....");
            copy(file, newFile);
        }  else if (file.isDirectory()) {
            String currentPath = file.getPath();
            findFiles(currentPath);
        }
      }
  }

}

private static void copy(File sourceFile, File destinationFile) {

    try {
        FileInputStream fis = new FileInputStream(sourceFile);
        FileOutputStream fos = new FileOutputStream(destinationFile);
        BufferedReader br = new BufferedReader(new InputStreamReader(fis));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8"));
        String satir;
        while ((satir = br.readLine()) != null) {
          // okudugumuz satiri buffered writer'a yazalim
          bw.write(satir);
          // yeni satir olusturalim
          bw.newLine();
        }
        // buffered writer'daki bilgileri cikti akisina gonderelim
        // ve buffered writer'i temizleyelim
        bw.flush ();
        bw.close ();
        br.close ();
        fis.close();
        fos.close();
      }
      catch (FileNotFoundException fnfe) {
        // Dosya bulunamadi
      }
      catch (IOException ioe) {
        // okuma/yazma hatasi
      }
   
}

Imza: admin

01.11.2013 (16:04)

 İç İçe Sınıflar, Nested Classes 
Java, iç içe sınıflar (sınıf içinde sınıf, nested classes) yazmayı desteklemektedir. Bu yazıda örnek bir kod verilecek ve iç sınıfın nesnesi üretilecektir.

public class AnaSinif {

  public class AltSinif {
      private int sinifNo;

      public AltSinif() {
        this.sinifNo = 0;
      }

      public AltSinif(int sinifNo) {
        this.sinifNo = sinifNo;
      }

      public int getSinifNo() {
        return this.sinifNo;
      }

      public void setSinifNo(int sinifNo) {
        this.sinifNo = sinifNo;
      }

  }

}


Alt sınıfın nesnesini üretelim:
int numara = new AnaSinif().new AltSinif(5).getSinifNo();

Imza: admin

05.02.2013 (04:06)

 Timer ve TimerTask Kullanımı 
Belirli süre aralıklarıyla bir işi yapmak için Timer ve TimerTask'tan yararlanabiliriz. Bu objeler Thread'lerde olduğu gibi çalışacak ve schedule edilecektir.

TimerTask gorev = new TimerTask(){
    public void run(){
        System.out.println("Vakit geldi...");
    }
};
       
Timer saat = new Timer();
saat.schedule(gorev, 0, 1000 * 60); // 60 saniye

Imza: admin

30.01.2013 (23:00)

 Resimleri Kırpmak 
Java'da JPG ve PNG formatlı resimleri okuma ve yazma konusuna şu yazımızda değinmiştik.

Bu resimler üzerinde kırpma gibi bir işlem yapmak istersek BufferedImage classının getSubimage metodundan yararlanabiliriz.

Örnek:
public void clipImage(int topMargin, int bottomMargin, int leftMargin, int rightMargin) {
    image = image.getSubimage(leftMargin, topMargin, image.getWidth() - (leftMargin + rightMargin), image.getHeight() - (topMargin + bottomMargin));
}

Imza: admin

12.01.2013 (01:58)

 Web Site Okumasında User-Agent Belirtme 
Bir web adresinin HTML bilgisini okumaya şu yazımızda bakmıştık.

Peki, kullanıcı aracısı site bizi nasıl algılar? Internet Explorer, Chrome, FireFox ya da cep telefonu tarayıcıları ile açtığımızda site bizi User-Agent bilgisi ile tanır.

Çok basit bir şekilde Java kodumuz üzerinde bu bilgiyi set edebiliriz:

URL url = new URL(site);
URLConnection urlc = url.openConnection();
urlc.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.0; rv:18.0) Gecko/20100101 Firefox/18.0");

// Obtain output stream
InputStream is = urlc.getInputStream();

Sizin User-Agent bilginizi görmek isterseniz şu adrese bir göz atabilirsiniz:
http://whatsmyuseragent.com/
Imza: admin

11.01.2013 (21:34)

 Javada Tamponlu Web Site Okuma 
Daha öncelerde dosya okumalarında bahsetmiştik. Bu okuma ve yazma işlemlerinde önemli bir noktanın karakter karakter değil tampon (buffer) kullanarak yapıldığını belirtmiştik.

Benzer olarak web site sayfalarından da veri çekmek için bu yönetimi kullanabiliriz. Bunun için kodumuz şu kadar basit:

package http;

import java.io.InputStream;
import java.net.URL;

public class Main {

public static final int BUFFER_SIZE = 1024;

  public static void main(String[] args) {
  try {

  String site = "http://www.kodcu.net";
      URL url = new URL(site);

      // Obtain output stream
      InputStream is = url.openStream();

      String output = "";
     
      // Read and display data from url
      byte buffer[] = new byte[BUFFER_SIZE];
      int i;
      while ((i = is.read(buffer)) != -1) {
        //System.out.write(buffer, 0, i);
        output += (new String(buffer).substring(0, i));
      }
     
      System.out.println(output);
     
    } catch (Exception e) {
      e.printStackTrace();
    }
   
  }

}

Imza: admin

10.06.2012 (22:11)

 Android Virtual Device Manager Config File Problemi 
Android işletim sisteminde program çalıştırmak üzere Java'da yazılım yapmaya başladınız fakat daha ilk aşamada, emülatörü başlattığınızda şu hatayı alıyorsanız çözümümüz çok basit:

PANIC: Could not open AVD config file: C:\Documents and Settings\özgür\.android\avd\AndroidVD1.avd/config.ini

Sorun bilgisayarınızda kayıtlı olan kullanıcı adınızdaki Türkçe karakterlerden kaynaklanmaktadır. Şu yolu izleyip bir ekleme yapalım:

Bilgisayarım > Özellikler > Gelişmiş > Ortam Değişkenleri > kullanıcı değişkenleri kısmında Yeni'ye tıklanır.

Değişken adı: ANDROID_SDK_HOME
Değişken değeri: C:\android

Olacak şekilde ekleme yapılır. C:\Documents and Settings\özgür\.android dosyası artık C:\android altına kopyalanabilir. Böylece AVD (Android Virtual Device) yeni dizinde oluşturulabilecektir.

Bir tavsiye: Sorun yaşadıktan sonra eklediğiniz AVD'yi kaldırın, AVD manager'dan çıkın; path ve dosya ayarlamalarınızı yaptıktan sonra AVD manager'ı açıp yeniden AVD ekleyin.

Imza: admin

14.09.2011 (03:31)

 Nesne Sıralama 
Sayıları, stringleri, karakterleri büyüklük ve küçüklük olarak karşılaştırıp sıralama yapabiliyoruz. Peki nesneleri birbirleriyle nasıl karşılaştıracağız ve neye göre sıralayacağız?

Öncelikle nesneleri neden sıralamak isteriz, bu ihtiyacımıza değinelim.

Daha önce nesnelerin dizi gibi saklanması ile ilgili ArrayList sınıfından şurada bahsetmiştik. Bu sınıf vasıtasıyla dinamik bir şekilde dizinin boyutuyla ilgilenmeden yeni nesneler ekleyip, nesneler çıkarabiliyoruz. Sakladığımız nesneleri sıralı bir hale getirmek ve o sırada dizinin içinde okuma yapmak isteyebiliriz. Burada karşımıza Collections sınıfının sort metodu çıkıyor. Bu metod arraylist objesi haricinde bir de Comparator nesnesi alıyor. Comparator sınıfı compare methoduna sahiptir.

Şimdi örneğimize bakalım:

Author.java:
class Author {
  private String firstName;
  private String lastName;

  public Author(){
  }
  public Author(String firstName, String lastName){
    this.firstName = firstName;
    this.lastName = lastName;
  }

  /**
    * @return Returns the firstName.
    */

  public String getFirstName() {
    return firstName;
  }
  /**
    * @param firstName The firstName to set.
    */

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }
  /**
    * @return Returns the lastName.
    */

  public String getLastName() {
    return lastName;
  }
  /**
    * @param lastName The lastName to set.
    */

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  public String toString(){
    return (this.firstName + " " + this.lastName);
  }
}

Main.java:
import java.util.*;

public class Main {

  /**
    * @param args
    */

  public static void main(String[] args) {

    Author author1 = new Author("Bekir", "Coşkun");
    Author author2  = new Author("Yılmaz", "Özdil");
    Author author3 = new Author("Emin","Çölaşan");
    Author author4 = new Author("Saygı","Öztürk");

    ArrayList authorList = new ArrayList();
    authorList.add(author1);
    authorList.add(author2);
    authorList.add(author3);
    authorList.add(author4);

    Collections.sort(authorList, new Comparator(){

        public int compare(Object o1, Object o2) {
            Author a1 = (Author) o1;
            Author a2 = (Author) o2;
            return a1.getFirstName().compareToIgnoreCase(a2.getFirstName());
        }

    });

    System.out.println(authorList);

  }
}

Imza: admin

 1   2  ··  10 








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter