Jul 21

Aşağıdaki kodu kullanarak kolayca bilgisayarınızın ekran görüntüsünü alabilirsiniz.

import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
import java.awt.*;
import java.awt.image.BufferedImage;
 
/**
 * Javaci.Net
 *
 * @user: ekocaman
 */
public class ScreenShot {
     public static void main(String[] args) {
        try {
            // ekran boyutlarını alalım
            Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
            int width = (int)d.getWidth();
            int height = (int)d.getHeight();
            Rectangle rect = new Rectangle(width, height);
            Robot robot = new Robot();
            // ekran görüntüsünü alalım
            BufferedImage bi = robot.createScreenCapture(rect);
            // bu görüntüyü Jpg olarak kayıt edelim
            ImageIO.write(bi, "jpg", new File("/home/ekocaman/screenshot.jpg"));
        } catch (AWTException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

yazan ekocaman \\ tags: , , ,

Jun 11

Java’da yazdığımız bazı Desktop Application’larda web sayfası açma ihtiyacı duyarız. Bunu aşağıdaki kod ile kolayca yapabiliriz.

String url = "http://www.javaci.net";
Runtime rt = Runtime.getRuntime();
String[] browsers = { "explorer", "epiphany", 
                      "firefox", "mozilla", "konqueror",
                      "netscape", "opera", "links", "lynx" };
 
for (int i = 0; i < browsers.length; i++) {
   try {
       // linux ve unix için
       rt.exec(new String[] { "sh", "-c", browsers[i]+"  \""+url+"\"" });
 
       // windows için
       rt.exec(new String[] { browsers[i], url });
 
       // Yukarıdaki kodlardan sadece biri kullanılmalıdır
   } catch (Exception e) {}
}

yazan ekocaman \\ tags: ,

Jun 02
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
 
/**
 * Javaci.Net
 *
 * @user: ekocaman
 */
public class DateFormatOrnegi {
 
    public static void main(String[] args) {
        // Şimdiki zamanı tutan Date objesi oluşturalım
        Date now = new Date();
 
        // Bunu ekrana bastıralım
        System.out.println(" 1. " + now.toString());
 
        // Şimdi DateFormat sınıfını kullanarak ekrana bastıralım
        System.out.println(" 2. " + DateFormat.getInstance().format(now));
 
        // Default time ve date-time DateFormat sınıflarını kullanalım
        System.out.println(" 3. " + DateFormat.getTimeInstance().format(now));
        System.out.println(" 4. " + DateFormat.getDateTimeInstance()
            .format(now));
 
        // DateFormat sınıfının kısa biçimi
        System.out.println(" 5. " + DateFormat.getTimeInstance(
            DateFormat.SHORT).format(now));
 
        // DateFormat sınıfının orta biçimi
        System.out.println(" 6. " + DateFormat.getTimeInstance(
            DateFormat.MEDIUM).format(now));
 
        // DateFormat sınıfının uzun biçimi
        System.out.println(" 7. " + DateFormat.getTimeInstance(
            DateFormat.LONG).format(now));
 
        // Eğer aynı zamanda saat birimini de görmek istiyorsak
        // DateTime kullanmamız gerekecek
        System.out.println(" 8. " + DateFormat.getDateTimeInstance(
            DateFormat.SHORT, DateFormat.SHORT).format(now));
        System.out.println(" 9. " + DateFormat.getDateTimeInstance(
            DateFormat.MEDIUM, DateFormat.SHORT).format(now));
        System.out.println("10. " + DateFormat.getDateTimeInstance(
            DateFormat.LONG, DateFormat.LONG).format(now));
 
        // Ayrıca SimpleDateFormat sınıfını kullanarak kendi
        // formatınızı oluşturabilirsiniz
        SimpleDateFormat df = (SimpleDateFormat)DateFormat.getDateInstance();
        df.applyPattern("dd.MM.yy");
        System.out.println("11. " + df.format(now));
 
        /**
         * Çıktısı aşağıdaki gibi olacaktır
         *
         1. Mon Jun 02 00:38:38 EEST 2008
         2. 6/2/08 12:38 AM
         3. 12:38:38 AM
         4. Jun 2, 2008 12:38:38 AM
         5. 12:38 AM
         6. 12:38:38 AM
         7. 12:38:38 AM EEST
         8. 6/2/08 12:38 AM
         9. Jun 2, 2008 12:38 AM
        10. June 2, 2008 12:38:38 AM EEST
        11. 02.06.08
         */
    }
}

yazan ekocaman \\ tags: , , ,

Apr 22

Javax.servlet paketi içerisinde bulunan RequestDispatcher kullanarak bir sayfayı başka bir sayfaya yönlendirebiliriz. Bu yazacağımız örnekte iş ve görüntü kısmını servlet ve jsp kullanarak nasıl ayrı şekil yapabileceğimizi göreceğiz.

Servlet içerisinde iş tarafı yapılacak, bunlar database işlemleri veya business logic olabilir. Jsp tarafında ise sadece servlet tarafından gönderilen obje sayesinde görüntüleme işlemi yapılacak.\r\nRequestDispatcher sınıfının forward methodunu kullanacağız.

void forward(ServletRequest request, ServletResponse response);

Servlet kodumuz

public class MyServlet extends HttpServlet {
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String a = request.getParameter("a");
    String b = request.getParameter("b");
    int firstNumber = Integer.parseInt(a);
    int secondNumber = Integer.parseInt(b);
    request.setAttribute("sonuc", firstNumber*secondNumber);
    RequestDispatcher dispatcher ;
    dispatcher = getServletContext().getRequestDispatcher("sonuc.jsp");
    dispatcher.forward(request, response);
  }
}

Bu servletimizde bize parametre olarak gönderilen iki değişken çarpılarak sonuc.jsp sayfasına yönlendiriliyor. Burada önemli olan iki sayının çarpımının request objesinin setAttribute methodunu kullanarak diğer sayfaya iletmemiz.

Jsp kodumuz

<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<%
     int sonuc= (Integer)request.getAttribute("sonuc");
%>
Sonuç = <%=sonuc%>

Böylece Servlet tarafında yaptığımız işlemi Jsp tarafında kullanıcıya göstermiş olduk.

yazan ekocaman \\ tags:

Apr 22

Java ile var olan bir dosyayı silmek istediğinizde

boolean success = (new File(”dosyaismi”)).delete();
if (!success)
// Dosya silindi
}else {
// Dosya silinemedi
}

yazan ekocaman \\ tags: ,

Apr 22

Bir dosyayı bir yerden başka bir yere koplayamak istediğimizde

InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dst);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
  out.write(buf, 0, len);
}
in.close();
out.close();

yazan ekocaman \\ tags: ,

Nov 16

Elinizde bir DOM obje var. Bunu herhangi bi XML dosyasında okuyup birazda değişiklik yapıp yeni bir XML dosyası oluşturmak istiyorsunuz. Peki bu DOM objesini XML dosyasına nasıl yazabiliriz. Aşağıdaki kod ile bunu kolayca yapabiliriz.

Node node = ... // elimizde dosyadan okuduğumuz root node
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(node);
File file = new File("yeni.xml");
StreamResult result = new StreamResult(file);
transformer.transform(source, result);

yazan ekocaman \\ tags: ,

Nov 08

Java’da dosya üzerinde bir işlem yaparken dosyayı kilitlemek istiyorsanız aşağıdaki kodu kullanabilirsiniz.
Kodu çalıştırdığınız zaman java.io.IOException atacaktır. Java kilitli dosyayı okumaya izin vermeyecektir.

import java.io.*;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;

public class FileLockSample {

    public static void main(String[] args) throws Exception {
        RandomAccessFile file = null;
        FileLock fileLock = null;
        try {
            // dosyayı RW icin acıyoruz
            file = new RandomAccessFile("C:/a.txt", "rw");
            FileChannel fileChannel = file.getChannel();

            // Dosya kilitleniyor
            fileLock = fileChannel.tryLock();
            if (fileLock != null){
                System.out.println("Dosya kitli");
                // Dosya okunmaya çalışılıyor
                // fakat kilitli olduğu için
                // Exception atıyor
                FileInputStream input=null;
                input = new FileInputStream("C:/a.txt");
                int data = input.read();
                System.out.println(data);
            }
        } catch (Exception exception){
            exception.printStackTrace();
        } finally {
            if (fileLock != null){
                // Dosya kiliti kaldırılıyor
                fileLock.release();
            }
        }
    }
}

yazan ekocaman \\ tags: ,

Oct 17
public class ImageApp {
  public static BufferedImage loadImage(String ref) {
    BufferedImage bimg = null;
    try {
      bimg = ImageIO.read(new File(ref));
    } catch (Exception e) {
      e.printStackTrace();
    }
      return bimg;
  }  

  public void loadAndDisplayImage(JFrame frame) {
    // resmi yükle
    BufferedImage loadImg = loadImage("C:/Images/duke.gif");
    frame.setBounds(0, 0, loadImg.getWidth(), loadImg.getHeight());
    // Paneli görünür yap ve Frame üzerine ekle
    frame.setVisible(true);
    // Graphics objesini al
    Graphics2D g = (Graphics2D)frame.getRootPane().getGraphics();
    // Resmi Graphics objesi üzerine çiz
    g.drawImage(loadImg, null, 0, 0);  

  }  

  public static void main(String[] args) {
    ImageApp app = new ImageApp();
    JFrame frame = new JFrame("Tutorials");
    app.loadAndDisplayImage(frame);
  }  

}

yazan ekocaman \\ tags:

Oct 15

Java programlamada en çok kullanılan String Fonksiyonları

public class StringFunctions {

    public static void main(String[] args) {
        String str = "";

        /**
         * String değeri "javaci" olarak atanmıştır
         * ve program boyunca değişmemektedir.
         */
        str = "javaci";

        /**
         * ÖNEMLİ:
         * String methodlari üzerinde çalıştırılan String
         * içerisinde değişiklik yapmaz. Yeni bir String oluşturarak
         * bütün değişiklikleri bu String üzerinde yapar ve
         * geriye döner
         */

        /**
         * charAt methodu ile istenen index'deki
         * karakter alınır
         */
        System.out.println(str.charAt(2));  // 'v'

        /**
         * concat methodu ile String sonuna
         * başka bir String eklenir
         */
        System.out.println(str.concat(".net")); // javaci.net

        /**
         * equalsIgnoreCase methodu ile String karşılaştırması
         * String içerisindeki harf küçük-büyük durumu ihmal
         * edilerek yapılır
         */
        System.out.println(str.equalsIgnoreCase("JAVACI")); // true
        System.out.println(str.equalsIgnoreCase("JaVAcI")); // true
        System.out.println(str.equalsIgnoreCase("haVAcI")); // false

        /**
         * length methodu ile String boyutu alınır
         */
        System.out.println(str.length());   // 6

        /**
         * replace methodu ile String içerisindeki karakter
         * başka bir karakter ile değiştirilir
         */
        System.out.println(str.replace('a', 'A'));  // jAvAci

        /**
         * substring methodu ile String içerisinde
         * başlangıç ve bitiş indexi verilen yeni String
         * geriye döner. index 0'dan başlar ve String
         * uzunluğunu aşmamalıdır
         */
        System.out.println(str.substring(1, 3));    // av

        /**
         * toLowerCase methodu String içerisindeki
         * harfleri küçültür
         */
        System.out.println(str.toLowerCase());  // javaci

        /**
         * toUpperCase methodu String içerisindeki
         * harfleri büyültür
         */
        System.out.println(str.toUpperCase());  // JAVACI
    }
}

yazan ekocaman \\ tags: