Selasa, 14 Oktober 2014

Menggambar Persegi dan Lingkaran menggunakan Netbeans



Ini adalah hasil screenshot dari gambar yang akan kita buat.
 


Karena kita akan membuat gambar persegi dan gambar lingkaran di Netbeans. Untuk itu kita membutuhkan class Persegi dan class MenggambarPersegi.
Dan inilah coding yang digunakan dalam membuat gambar diatas.
Coding untuk class Persegi:
package persegi;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

/**
 *
 * @author Natan
 */
public class Persegi extends JPanel{

    @Override
    protected void paintComponent (Graphics g) {
        super.paintComponents(g);
 
    g.setColor(Color.RED);
    g.fillRect(50, 50, 100, 100);
    g.drawLine (50, 50, 150, 50);
    g.drawLine (150, 50, 150, 150);
    g.drawLine (150, 150, 50, 150);
    g.drawLine (50,150,50,50);

    g.setColor(Color.MAGENTA);
    g.fillOval(150, 150, 150, 150);
    g.drawOval (150, 150, 150, 150);
   
    g.setColor(Color.BLUE);
    g.fillRect(300, 50, 100, 100);
    g.drawRect(300, 50, 100, 100);

    g.setColor(Color.YELLOW);
    g.fillRect(50, 300, 100, 100);
    g.drawRect(50, 300, 100, 100);

    g.setColor(Color.BLACK);
    g.fillRect(300, 300, 100, 100);
    g.drawRect(300, 300, 100, 100);

    g.setColor(Color.BLUE);
    g.drawString("Nataniel", 200, 220);
    g.drawString("Tappa", 205, 240);
   
}
}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Coding class MenggambarPersegi:
package persegi;

import java.awt.Color;
import javax.swing.JFrame;

/**
 *
 * @author Natan
 */
public class MenggambarPersegi extends JFrame {
    public MenggambarPersegi () {
     setTitle ("Gambar persegi");
     add (new Persegi());
    }

    public static void main(String[] args) {
        MenggambarPersegi frame = new MenggambarPersegi ();

        frame.setSize(500,500);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBackground(Color.GREEN);
        frame.setTitle("Nataniel Tappa");

    }
    }
 

Senin, 13 Oktober 2014

Membuat Animasi Bola Menggunakan Netbeans

Untuk membuat animasi bola menggunakan Netbeans kita membutuhkan tiga Class yaitu : Class Ball, Class BallControl, dan Class BounceBallApp ...
Berikut adalah coding untuk masing-masing Class...

Coding untuk Class Ball :
 package Bola;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import javax.swing.JPanel;

/**
 *
 * @author Natan
 */

public class Ball extends JPanel {
    private int delay = 50;

   protected Timer timer = new Timer(delay, new TimerListener());

   public int x = 0;
   public int y = 0;
   private int radius = 5;
   private int dx = 7;
   private int dy = 7;

   public int a = 0;
   public int b = 0;
   private int ca = 5;
   private int cb = 5;

   public Ball() {
     timer.start();
   }

   private class TimerListener implements ActionListener {
     public void actionPerformed(ActionEvent e) {
       repaint();

     }
   }
   protected void paintComponent(Graphics g) {
     super.paintComponent(g);
//bola warna merah
     g.setColor(Color.red);

     if (x < radius) dx = Math.abs(dx);
     if (x > getWidth() - radius) dx = -Math.abs(dx);
     if (y < radius) dy = Math.abs(dy);
     if (y > getHeight() - radius) dy = -Math.abs(dy);

        x += dx;
        y += dy;
        g.fillOval(x - radius, y - radius, radius * 3, radius * 3);

       Polygon anu=new Polygon();
       anu.addPoint(0, 0);
       anu.addPoint(x - radius, y - radius);

       g.drawPolygon(anu);

       //bola warna biru
          g.setColor(Color.BLUE);

     if (a < radius) ca = Math.abs(ca);
     if (a > getWidth() - radius) ca = -Math.abs(ca);
     if (b < radius) cb = Math.abs(cb);
     if (b > getHeight() - radius) cb = -Math.abs(cb);

        a += ca;
        b += cb;
        g.fillOval(a - radius, b - radius, radius * 3, radius * 3);

       Polygon raga=new Polygon();
       raga.addPoint(0, 0);
       raga.addPoint(a - radius, b - radius);

       g.drawPolygon(raga);

}

public void suspend() {
timer.stop();
}

public void resume() {
timer.start();
}

public void setDelay(int delay) {
this.delay = delay;
timer.setDelay(delay);
   }
}

***********
Coding untuk Class BallControl :
 package Bola;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollBar;

/**
 *
 * @author Natan
 */

public class BallControl extends JPanel {
    private Ball ball = new Ball();
    private JButton jbtStop = new JButton("Berhenti");
    private JButton jbtResume = new JButton("Lanjutkan");
    private JScrollBar jsbDelay = new JScrollBar();

   public BallControl() {

     JPanel panel = new JPanel();
     panel.add(jbtStop);
     panel.add(jbtResume);
     ball.setBorder(new javax.swing.border.LineBorder(Color.GREEN));
     jsbDelay.setOrientation(JScrollBar.HORIZONTAL);
     ball.setDelay(jsbDelay.getMaximum());
     setLayout(new BorderLayout());
     add(jsbDelay, BorderLayout.NORTH);
     add(ball, BorderLayout.CENTER);
     add(panel, BorderLayout.SOUTH);

     jbtStop.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
         ball.suspend();
       }
     });
     jbtResume.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
         ball.resume();
       }
     });
     jsbDelay.addAdjustmentListener(new AdjustmentListener() {
       public void adjustmentValueChanged(AdjustmentEvent e) {
         ball.setDelay(jsbDelay.getMaximum() - e.getValue());
       }
     });
   }
}

****************
Coding untuk Class BounceBallApp :
 package Bola;

import javax.swing.JApplet;

/**
 *
 * @author Natan
 */

public class BounceBallApp extends JApplet {
    public BounceBallApp(){
        add(new BallControl());
    }
}

*****************

Setelah di jalankan hasilnya akan tampak seperti gambar berikut :



Selamat mencoba.... :)