Rabu, 04 Januari 2012

mobil ala java

mungkin bagi orang awam java sangat sulit. disini kalian biasa membuat gambar-gambar dua dimensi dari java menjadi bergerak ikuti caranya:

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.*;

public class Gabungan3 extends JFrame{
    private JPanel buttonPanel;
    private Mobil gambar;
    private JButton btGerak;
    public JTextField masukan;
    private int faktor, a;
    public int sensorDepan, sensorBelakang;
    Timer timer = new Timer();

public Gabungan3() {
    super("Mobil Genius");
    gambar= new Mobil();
    gambar.setBackground(Color.white);

            masukan  = new JTextField();
            masukan.setText("1");

     btGerak = new JButton( "Start" );
     btGerak.addActionListener(new ActionListener() {
     public void actionPerformed( ActionEvent event ) {
     gerakkan(true);
     }
     });

        buttonPanel = new JPanel();
        buttonPanel.setLayout( new GridLayout( 1, 3 ) );
        buttonPanel.add(masukan);
        buttonPanel.add(btGerak);
        Container container = getContentPane();
        container.add( gambar, BorderLayout.CENTER );
        container.add( buttonPanel, BorderLayout.SOUTH);
        setSize(800, 230);
        setVisible( true );
     }

     public static void main( String args[] ){
     Gabungan3 application = new Gabungan3();
                  application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
}
class putar extends TimerTask{
private boolean mundur;

public void run()
{
try{                      faktor=Integer.parseInt(masukan.getText());
if(mundur){
a -= faktor;
gambar.draw(Mobil.GERAK, a);
if(sensorBelakang <= 40)
     mundur = false;
}else{
a += faktor;
           gambar.draw(Mobil.GERAK, a);
           if(sensorDepan >= 739)
           mundur = true;
               }
           }catch(Exception e){}
      }
      }

public void gerakkan(boolean laju){
if(laju){
     masukan.setText("1");
timer.schedule(new putar(), 10, 1);
}
else if (laju == false)
masukan.setText("0");
}
       class Mobil extends JPanel {
           public final static int GERAK = 1;
           private int shape;
           int transformasi = 0;
Color warna;
@Override
public void paintComponent( Graphics g ) {
super.paintComponent( g );
Graphics2D g2=(Graphics2D) g ;

            int mX1 = 90, mY1 = 60;
            int mX2 = 180, mY2 = 60;
            int mX3 = 230, mY3 = 90;
            int mX4 = 260, mY4 = 100;
            int mX5 = 270, mY5 = 110;
            int mX6 = 270, mY6 = 130;
            int mX7 = 230, mY7 = 130;
            int mX8 = 210, mY8 = 110;
            int mX9 = 190, mY9 = 130;
            int mX10 = 110, mY10 = 130;
            int mX11 = 90, mY11 = 110;
            int mX12 = 70, mY12 = 130;
            int mX13 = 40, mY13 = 130;
            int mX14 = 40, mY14 = 120;
            int mX15 = 50, mY15 = 120;
            int mX16 = 50, mY16 = 100;
            int mX17 = 60, mY17 = 100;

            int kX1 = 76, kY1 = 90;
            int kX2 = 90, kY2 = 90;
            int kX3 = 90, kY3 = 70;
            int kX4 = 100, kY4 = 90;
            int kX5 = 140, kY5 = 90;
            int kX6 = 140, kY6 = 70;
            int kX7 = 100, kY7 = 70;
            int kX8 = 150, kY8 = 90;
            int kX9 = 210, kY9 = 90;
            int kX10 = 180, kY10 = 70;
            int kX11 = 150, kY11 = 70;

            int rX1 = 190, rY1 = 110;
            int rX2 = 70, rY2 = 110;

            int vX1 = 200, vY1 = 120;
            int vX2 = 80, vY2 = 120;

Rectangle2D tembok1 = new Rectangle2D.Float(740, 50, 20, 100);
            Rectangle2D tembok2 = new Rectangle2D.Float(20, 50, 20, 100);
            warna = new Color(234, 107, 72);
            g2.setPaint(warna);
            g2.fill(tembok1);
            g2.fill(tembok2);
            g2.draw(tembok1);
            g2.draw(tembok2);

            Line2D jalan = new Line2D.Float(40, 150, 740, 150);
            warna = new Color(0, 0, 0);
            g2.setColor(warna);
            g2.setPaint(warna);
            g2.fill(jalan);
            g2.setPaint(warna);
            g2.draw(jalan);

            warna = new Color(80, 164, 245);
            g2.setColor(warna);
            Polygon mobil = new Polygon();
              mobil.addPoint(mX1 + transformasi, mY1);
              mobil.addPoint(mX2 + transformasi, mY2);
              mobil.addPoint(mX3 + transformasi, mY3);
              mobil.addPoint(mX4 + transformasi, mY4);
              mobil.addPoint(mX5 + transformasi, mY5);
              mobil.addPoint(mX6 + transformasi, mY6);
              mobil.addPoint(mX7 + transformasi, mY7);
              mobil.addPoint(mX8 + transformasi, mY8);
              mobil.addPoint(mX9 + transformasi, mY9);
              mobil.addPoint(mX10 + transformasi, mY10);
              mobil.addPoint(mX11 + transformasi, mY11);
              mobil.addPoint(mX12 + transformasi, mY12);
              mobil.addPoint(mX13 + transformasi, mY13);
              mobil.addPoint(mX14 + transformasi, mY14);
              mobil.addPoint(mX15 + transformasi, mY15);
              mobil.addPoint(mX16 + transformasi, mY16);
              mobil.addPoint(mX17 + transformasi, mY17);
            g2.fill(mobil);
            g2.drawPolygon(mobil);

            warna = new Color(0, 0, 0);
            g2.setColor(warna);
            Polygon kaca1 = new Polygon();
              kaca1.addPoint(kX1 + transformasi, kY1);
              kaca1.addPoint(kX2 + transformasi, kY2);
              kaca1.addPoint(kX3 + transformasi, kY3);
            g2.fill(kaca1);
            g2.drawPolygon(kaca1);

            Polygon kaca2 = new Polygon();
              kaca2.addPoint(kX4 + transformasi, kY4);
              kaca2.addPoint(kX5 + transformasi, kY5);
              kaca2.addPoint(kX6 + transformasi, kY6);
              kaca2.addPoint(kX7 + transformasi, kY7);
            g2.fill(kaca2);
            g2.drawPolygon(kaca2);

            Polygon kaca3 = new Polygon();
              kaca3.addPoint(kX8 + transformasi, kY8);
              kaca3.addPoint(kX9 + transformasi, kY9);
              kaca3.addPoint(kX10 + transformasi, kY10);
              kaca3.addPoint(kX11 + transformasi, kY11);
            g2.fill(kaca3);
            g2.drawPolygon(kaca3);

Ellipse2D roda1 = new Ellipse2D.Float(rX1 + transformasi,rY1,40,40);
Ellipse2D roda2 = new Ellipse2D.Float(rX2 + transformasi,rY2,40,40);
            g2.fill(roda1);
            g2.fill(roda2);
            g2.draw(roda1);
            g2.draw(roda2);

Ellipse2D velg1 = new Ellipse2D.Float(vX1 + transformasi,vY1,20,20);
Ellipse2D velg2 = new Ellipse2D.Float(vX2 + transformasi,vY2,20,20);
            warna = new Color(255,255,255);
            g2.setPaint(warna);
            g2.fill(velg1);
            g2.fill(velg2);
            g2.draw(velg1);
            g2.draw(velg2);
  g2.draw(velg2);

g2.drawString("Mobilku", 130 + transformasi, 110);

sensorDepan = mX5 + transformasi;
sensorBelakang = mX14 + transformasi;
if ( shape == GERAK){
transformasi += transformasi;
     }
}
public void draw( int shapeToDraw, int fak)
{
shape = shapeToDraw;
transformasi = fak;
repaint();
     }
  }
java.com

Tidak ada komentar:

Posting Komentar