Java App-Gif Görüntüleme

Ekranda bir gif görüntülenecek. Burada gif dosyası applet ile aynı dizinde olmalıdır.

import java.awt.*;
import java.applet.*;
import java.net.*;

public class ImageOrnegi extends Applet
{
  Image myGif;
  URL base;
  MediaTracker mt;
  
  public void init() 
  {
    mt = new MediaTracker(this);
    
    try 
    {
      base = getDocumentBase();
    }
    catch (Exception e) {}

    myGif = getImage(base,"Ornek.gif");
    mt.addImage(myGif,1);

    try {
      mt.waitForAll();
    }
    catch (InterruptedException  e) {}
  }
  
  public void paint(Graphics g) 
  {		
    g.drawImage(myGif,15,15,this);//gif adı, x konumu, y konumu
    g.drawImage(myGif,15,260,150,150,this);//gif adı, x konumu, y konumu, gif eni, gif boyu
  }
}

 

Java App-Çift Buffering’siz Uygulama

import java.applet.*;
import java.awt.event.*;
import java.awt.*;

public class NoDoubleBuffering extends Applet implements MouseMotionListener
{
  Graphics bufferGrafikleri;
  Image offscreen;
  Dimension dim;
  int x, y;
  
  public void init() 
  {
    // We'll ask the width and height by this
    dim = getSize();
    // We'll redraw the applet eacht time the mouse has moved.
    addMouseMotionListener(this);
    // Just for fun
    setBackground(Color.gray);
    // Create an offscreen image to draw on
    // Make it the size of the applet, this is just perfect larger
    // size could slow it down unnecessary.
    offscreen = createImage(dim.width,dim.height);
    // by doing this everything that is drawn by bufferGraphics
    // will be written on the offscreen image.
    bufferGrafikleri = offscreen.getGraphics();
  }
  
  public void paint(Graphics g) 
  {
    g.setColor(Color.green);
    g.drawString("Çift buffering'siz",10,10);
    g.fillRect(x,y,20,20);
  }
  
  // Çift tamponlama için her zaman gereklidir.
  // Önceki çizimlerin silinmesi ve yenisinin oluşturulması ekranda titremeye neden olur.
  // Repaint() çağrıldığında güncelleme otomatik olarak çağrılır.
  
  /*public void update(Graphics g)
  {
    paint(g);
  }
  */
  
  public void mouseMoved(MouseEvent evt) 
  {
    x = evt.getX();
    y = evt.getY();
    repaint();
  }

  public void mouseDragged(MouseEvent evt) {}
 }

 

Java App-Pinpon topları

import java.applet.Applet;
import java.awt.Color;
import java.awt.Event;
import java.awt.Graphics;
import java.util.Vector;

public class Balls extends Applet implements Runnable {
  
    //Hareket edecek topları tutmak için bir Vector nesnesi tanımlıyoruz.
    Vector v = new Vector();
    
    //Animasyonu yapacak olan bir Thread nesnesi
    Thread animate;

    public void init() {
        //5 adet rastgele noktalarda baslayacak top nesnesi olusturup vectore atalım
        //cok sayıda top oluşturulduğunda da Applet calışabilecektir.
        for (int i = 0; i < 5; i++) {
        	
            //toplarin baslangıçta çizilecegi rastgele noktalar
            int x = (int) (Math.random() * 100);
            int y = (int) (Math.random() * 100);
            
            //Top nesnesini olusturalim
            Ball t = new Ball(x, y, selectionColor(i));
            
            //Olusturdugumuz Top nesnesini vectore ekleyeleim
            v.add(t);
            
            //Toplarin hareket edecegi alanin eni ve boyu
            t.en = getWidth();
            t.boy = getHeight();
        }
    }

    //Toplar ilk olusturuldugunda renklerinin secimi icin kullanilan metod
    public Color selectionColor(int i) {
        switch (i) {
            case 0:
                return Color.cyan;
            case 1:
                return Color.green;
            case 2:
                return Color.red;
            case 3:
                return Color.blue;
            case 4:
                return Color.pink;
            default:
                return Color.yellow;
        }
    }

    //Appletin start metodu
    public void start() {
        if (animate == null) {
            animate = new Thread(this);
            animate.start();
        }
    }

    //Thread'in start metodu cagrildiginda bu metod cagriliyor
    public void run() {
        try {
            while (animate != null) {
                Thread.sleep(20);
                for (int i = 0; i < v.size(); i++) {
                	Ball b = (Ball) v.get(i);
                    b.adimAt();
                    repaint();
                }
            }
        } catch (Exception e) {
        }
    }

    public void update(Graphics g) {
        paint(g);
    }

    public void paint(Graphics g) {
        //g.clearRect(0, 0, getWidth(), getHeight());
        g.setColor(Color.lightGray);
        g.fillRect(0, 0, size().width, size().height);

        for (int i = 0; i < v.size(); i++) {
            ((Ball) v.elementAt(i)).paint(g);
        }
    }

    //Mouse tiklandiginda applet baslasin veya dursun
    public boolean mouseDown(Event evt, int x, int y) {
    	
        //Eger animate nesnesi null ise toplar durmus demektir
        if (animate == null) {
            animate = new Thread(this);
            animate.start();
        } else {
        	
            //eger animate null degilse null yapip durduralim
            animate = null;
        }
        return true;
    }
}
import java.awt.Color;
import java.awt.Graphics;

class Ball {

    public int en, boy;
    private int x, y, dx = 1, dy = 1;
    private Color ballColor;
    private static int sayac = 0;

    public Ball(int a, int b, Color c) {
        x = a;
        y = b;
        ballColor = c;
        dx = (int) (Math.random() * 10);
        dy = (int) (Math.random() * 10);
        sayac++;
        System.out.println(sayac + ". Top oluşturuldu...");
    }

    public void adimAt() {
        if (x < 0 || x >= en) {
            dx = -dx;
        }
        if (y < 0 || y >= boy) {
            dy = -dy;
        }
        x += dx;
        y += dy;
    }

    public void paint(Graphics g) {
        g.setColor(ballColor);
        g.fillOval(x, y, 20, 20);
    }
}

 

Java App-Çizim örnekleri

/* 
Applet'ler özel şekiller, boyalar, renkler ve fontlar kullanır.
*/

import java.awt.*;
import java.applet.*;

public class Cizim extends Applet 
{
  Font bigFont;
  Color greenColor;
  Color weirdColor;
  Color bgColor;
  
  public void init()  
  {
    bigFont = new Font("Arial",Font.BOLD,20);
    greenColor = Color.green;
    weirdColor = new Color(60,120,250);
    bgColor = Color.gray;
    setBackground(bgColor);
  }
  
  public void stop()
  {
  }
  
  public void paint(Graphics g) 
  {
    g.setFont(bigFont);
    g.drawString("Şekiller ve renkler",80,20);
    g.setColor(greenColor);
    g.drawRect(100,100,100,100);
    g.fillRect(110,110,80,80);
    g.setColor(weirdColor);
    g.fillArc(120,120,60,60,0,360);
    g.setColor(Color.red);
    g.drawLine(140,140,160,160);
    g.setColor(Color.black);
  }
}

 

Java App-Çift Buffering(Bad)

/* Uygulamalardaki çizim, çoğunlukla çift buffering ile yapılır.
Çizim önce bir ekran dışı görüntüye yapılır. Ekranda olmayan görüntü ekranda çizilir.
*/
import java.applet.*;
import java.awt.event.*;
import java.awt.*;

public class Bad extends Applet implements MouseMotionListener
{
  Graphics bufferGrafikleri;
  Image offscreen;
  Dimension dim;
  int x, y;
  
  public void init() 
  {
    dim = getSize();
    addMouseMotionListener(this);
    setBackground(Color.gray);
    offscreen = createImage(dim.width,dim.height);
    bufferGrafikleri = offscreen.getGraphics();
  }
  
  public void paint(Graphics g) 
  {
    bufferGrafikleri.clearRect(0,0,dim.width,dim.width);
    bufferGrafikleri.setColor(Color.yellow);
    bufferGrafikleri.drawString("Kötü Çift Buffering uygulaması",10,10);
    bufferGrafikleri.fillRect(x,y,20,20);
    g.drawImage(offscreen,0,0,this);
  }
// Cift Buffering uygulaması örneğinde yer alan update() metodu burada yer almamaktadır.
  public void mouseMoved(MouseEvent evt) 
  {
    x = evt.getX();
    y = evt.getY();
    repaint();
  }

  public void mouseDragged(MouseEvent evt) 
  {
  }
 }

 

Java App-Çift Buffering

/* Uygulamalardaki çizim, çoğunlukla çift buffering ile yapılır.
Çizim önce bir ekran dışı görüntüye yapılır. Ekranda olmayan görüntü ekranda çizilir.
*/
import java.applet.*;
import java.awt.event.*;
import java.awt.*;

public class CiftBuffering extends Applet implements MouseMotionListener
{
  Graphics bufferGrafikleri;
  Image offscreen;
  Dimension dim;
  int x, y;
  
  public void init() 
  {
    dim = getSize();
    addMouseMotionListener(this);
    setBackground(Color.gray);
    offscreen = createImage(dim.width,dim.height);
    bufferGrafikleri = offscreen.getGraphics();
  }
  
  public void paint(Graphics g) 
  {
    bufferGrafikleri.clearRect(0,0,dim.width,dim.width);
    bufferGrafikleri.setColor(Color.yellow);
    bufferGrafikleri.drawString("Çift buffering Uygulaması",10,10);
    bufferGrafikleri.fillRect(x,y,20,20);
    g.drawImage(offscreen,0,0,this);
  }
  
  public void update(Graphics g)
  {
    paint(g);
  }
  
  public void mouseMoved(MouseEvent evt) 
  {
    x = evt.getX();
    y = evt.getY();
    repaint();
  }
  
  public void mouseDragged(MouseEvent evt) 
  {
  }
 }

 

Java App-Action Örneği

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class ActionExample extends Applet implements ActionListener
{
  Button onayButonu;
  Button hataButonu;
  TextField write;
  CheckboxGroup radioGroup;
  Checkbox radio1;
  Checkbox radio2;
  Checkbox radio3;
  
  public void init() 
  {
    setLayout(new FlowLayout());
    onayButonu = new Button("Deneyin!");
    hataButonu = new Button("Basmayın!");
    write = new TextField("Bir yazı yazınız...",40);
    radioGroup = new CheckboxGroup();
    radio1 = new Checkbox("Kırmızı", radioGroup,false);
    radio2 = new Checkbox("Mavi", radioGroup,true);
    radio3 = new Checkbox("Yeşil", radioGroup,false);
    add(onayButonu);
    add(hataButonu);
    add(write);
    add(radio1);
    add(radio2);
    add(radio3);

    onayButonu.addActionListener(this);
    hataButonu.addActionListener(this);
  }
  
  public void paint(Graphics g)
  {
    if (radio1.getState()) g.setColor(Color.red);
    else if (radio2.getState()) g.setColor(Color.blue);
    else g.setColor(Color.green);
  
    g.drawString(write.getText(),20,100);
  }

  public void actionPerformed(ActionEvent evt) 
  {
    if (evt.getSource() == onayButonu) 
    {	
      repaint();
    }

    else if (evt.getSource() == hataButonu) 
    {
      hataButonu.setLabel("Hatalı!");
      write.setText("Yanlış butona bastınız!");
      repaint();
    }
  }	
}

 

Dizinin max elemanını bulma-metot ve thread karşılaştırması

/*
 * Dizideki en büyük değer 2 şekilde bulunur:
 * 1. Ana class içinde yer alan metot aracılığıyla bulunur.
 * 2. Bulma işi parçalara bölünür, thread'lere yaptırılır.
 * İki durum için de performanslar ortaya konur.
 */
import java.util.Random;

public class Maximum {

    public int maxBul(int[] dizi){
        int max = dizi[0];
        for (int i = 0; i < dizi.length; i++) {
            if(dizi[i]>max)
                max = dizi[i];
            
            sleep(1);
        }
        return max;
    }

    public void sleep(int ms){
        try {
        Thread.sleep(ms);
        } catch (Exception e) {
        }
    }

    public static void main(String[] args) {
    	Maximum m = new Maximum();

        //1000 elemanlı ve her elemani 0 ile 200 arasinda
        //rasgele bir sayi olan bir dizi olusturup icini
        //dolduralim
        int[] dizi = new int[1000];
        Random r = new Random();
        for (int i = 0; i < dizi.length; i++) {
            dizi[i] = r.nextInt(200);
        }

        // maxBul metodunun ne kadar zamanda bulduğunu hesaplayalim
        System.out.println("maxBul METODU");
        long start  = System.currentTimeMillis();
        System.out.println("EnBuyuk -> " + m.maxBul(dizi));
        long finish = System.currentTimeMillis();

        System.out.println("maxBul metodunun bulma süresi " + (finish-start) + " ms");

        //Problemi parçalara bölüp thread'lere aratalım.
        MaxThread t1 = new MaxThread(dizi, 0, 200);
        MaxThread t2 = new MaxThread(dizi, 200, 400);
        MaxThread t3 = new MaxThread(dizi, 400, 600);
        MaxThread t4 = new MaxThread(dizi, 600, 800);
        MaxThread t5 = new MaxThread(dizi, 800, 1000);
        System.out.println("");
        System.out.println("THREAD");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
        t5.start();
    }
}
class MaxThread extends Thread{
    int s, f;
    int[] a;

    public MaxThread(int[] array,
            int start,
            int finish){
        a = array;
        s = start;
        f = finish;
    }

    public void run(){
        long start  = System.currentTimeMillis();
        enBuyuk();
        long finish = System.currentTimeMillis();

        System.out.println(this.getName() + " " + (finish-start) + " ms");
    }

    public int enBuyuk(){
        int max = a[0];
        for (int i = s; i < f; i++) {
            if(a[i]>max)
                max = a[i];
            try {
                this.sleep(2);
            } catch (Exception e) {
            }
        }
        return max;
    }
}

 

Java’da Thread Kullanımı-2

public class Main {
    public static void main(String[] args) {
    	Threads i1 = new Threads();
    	Threads i2 = new Threads();
    	Threads i3 = new Threads();
    	Threads i4 = new Threads();
        long baslangıc = System.currentTimeMillis();
        i1.start();
        i2.start();
        i3.start();
        i4.start();
        long bitis = System.currentTimeMillis();
        System.out.println("Gecen Zaman = " +
                (bitis - baslangıc));
    }
}
class Threads extends Thread {
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.println(this.getName() + " : " + i);
            try {
                //2 sn uyu
                this.sleep(2000);
            } catch (Exception e) {}
        }
    }
}

 

Java’da Veritabanı işlemleri

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Properties;

public class Veritabanı {

    //Veritabanina baglanmak icin kullanacagimiz JDBC driver
    private String driver = "org.apache.derby.jdbc.EmbeddedDriver";
    
    //JDBC ile Derby database baglantisi kurmamiz gerekiyor
    private String protocol = "jdbc:derby:";

    private static Connection conn = null;
    private Statement s = null;

    // Kurucu metod nesne olusturulunca veritabani baglantisi aciliyor.
    public Veritabanı(){
        connect();
    }

    public void connect() {
        try {
            //Surucuyu yukle
            Class.forName(driver).newInstance();
            Properties p = new Properties();

            String dbName = "Veritabanı"; // Olusturacagimiz Veritabanimizin ismi
            //Baglantiyi kur
            conn = DriverManager.getConnection(protocol + dbName + ";create=true", p);
            System.out.println("Baglanti kuruldu ve " + dbName + " veritabani olusturuldu");
            conn.setAutoCommit(true);

            //Daha sonra yurutecegimiz SQL sorgularini Statement yardimiyla calistiracagiz
            s = conn.createStatement();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    
    public void veritabaniOlustur(){
        try {
            //Kayitlar adinda bir veritabani olusturalim, bunun
            //isim, soyisim, ogrencino ve bolum adinda 4 adet sutunu olsun
              s.execute("create table kayitlar(isim varchar(40), " +
                      "soyisim varchar(40)," +
                      "ogrencino int, " +
                      "bolum varchar(50))");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void kayitEkle(String isim, String soyisim, int ogrencino, String bolum){
        try {
            String sorgu = "insert into kayitlar values ('" +isim +
                    "','" + soyisim +
                    "'," + ogrencino +
                    ",'" + bolum +
                    "')";
            System.out.println("sorgu = " + sorgu);
            s.executeUpdate(sorgu);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public ResultSet kayitAl(){
        ResultSet rset = null;
        try {
            rset = s.executeQuery(
                    "SELECT * from kayitlar ORDER BY ogrencino");
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return rset;
    }

    public void kayitYazdir(){
        try {
        ResultSet rset = kayitAl();
        if(rset!=null){
        ResultSetMetaData rsmd = rset.getMetaData();
        rsmd.getColumnCount();
        int i = 0;

        while (rset.next()) {
            for (int j = 1; j < rsmd.getColumnCount(); j++) {
                System.out.print(rset.getString(j) + " ");
            }
            System.out.println("");
          }
        }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public void tabloSil(){
        try {
            s.execute("drop table kayitlar");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
    	
    	Veritabanı e = new Veritabanı();
        e.veritabaniOlustur();

        e.kayitEkle("Deniz", "Kılınç", 1, "Yazılım Muh");
        e.kayitEkle("Emin", "Borandağ", 2, "Bilgisayar Muh");
        e.kayitEkle("Akın", "Özçift", 3, "Elektrik Muh");
        e.kayitEkle("Volkan", "Tunalı", 4, "Elektronik Muh");
        e.kayitYazdir();
    }
}