30 Haziran 2013 Pazar

Java Gui--14(Grafikler)




         Java da grafik çizdirebilmek için “paint(Graphics g)” metodunu kullanıyoruz. Basit bir şekilde aşağıdaki gibi bir kod yazarak grafiklerimizin penceremizde görünmesini sağlayabiliriz.

import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;

public class GraphicsDemo extends JFrame implements ActionListener{
    public GraphicsDemo( ){
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 300);
        setVisible(true);
    }
    public void paint(Graphics g){
        super.paint(g);
        //Kodlar Buraya
    }
    public void actionPerformed(ActionEvent event){
       
    }
    public static void main(String[ ] args) {
        GraphicsDemo demo = new GraphicsDemo( );
    }
}

         super.paint(g);” cümlesi ile Graphics sınıfına ait “g” nesnesini kullanmamızı sağlar. Aşağıda da “g” nesnemiz kullanılarak bazı şekiller hakkında bilgi verilmiştir.

Doğru

g.drawLine(int x1,int y1,int x2,int y2);/*x1 ve y1 noktası ile x2 ve y2 noktalarını birleştirerek doğruyu oluşturur.*/

Dörtgen

g.drawRect(int x,int y,int width,int height);//içi boş çizim
g.fiilRect(int x,int y,int width,int height);//içi dolu çizim
g.clearRect(int x,int y,int width,int height);//pencere rengiyle ayni renkte dörtgen
g.drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight);//Köşeleri oval dörtgen , içi boş
g.fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight);//Köşeleri oval dörtgen , içi dolu

Oval

g.drawOval(int x,int y,int width,int height);
g.fillOval(int x,int y,int width,int height);

Daire-Çember

g.drawArc(int x,int y,int width,int height,int startAngle,inta rcAngle);/*arcAngle kaç derecelik bir çember parçası oluşturacağını belirler. Eksi değer  alabilir.*/
g.fillArc(int x,int y,int width,int height,int startAngle,int arcAngle);/*arcAngle kaç derecelik bir daire parçası oluşturacağını belirler. Eksi değer alabilir.*/

Çokgen

g.drawPolygon(int[] xPoints,int[] yPoints,int nPoints);
g.drawPolygon(int[] xPoints,int[] yPoints,int nPoints);

Örnek //Aşağıdaki örnekte iki kare ve bir buton bulunmaktadır. Butona basıldıkça bu kareler birbirine yaklaşmaktadır.

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class GraphicsDemo extends JFrame implements ActionListener {

    JButton buton = new JButton("Yaklas");
    int a = 0;
    int b = 440;
    public GraphicsDemo( ) {
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 200);
        setVisible(true);
        add(buton , BorderLayout.SOUTH);
        buton.addActionListener(this);
    }

    public void paint(Graphics g) {
        super.paint(g);
        g.setColor(Color.red);
        g.fillRect(10 + a, 70, 50, 50);
        g.fillRect(b - a, 70, 50, 50);
       
    }

    public void actionPerformed(ActionEvent event) {
          a += 10;
          repaint( ); 
    }

    public static void main(String[ ] args) {
        GraphicsDemo demo = new GraphicsDemo( );
    }
}
  

Ekran Görüntüleri



0 yorum:

Yorum Gönder