Gå til innhold

[LØST] En firkant som roterer/ruller


Anbefalte innlegg

Hei,

 

Driver å skal få en firkant til å rotere/rulle bortover i et JPanel. Får den til å flytte seg bortover, men ikke rulle.

 

Her er koden min:

 

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.*;
import java.io.IOException;
import java.net.URL;
import java.util.Calendar;

import javax.imageio.ImageIO;
import javax.swing.*;


public class Firkant extends JFrame
{
private JPanel panel = new Panel();
public int T = 0;

public Firkant()
{
	super( "Firkant" );
	setSize(600, 600);
	setResizable( false );

	Timer t = new Timer(1, new ActionListener() 
	{
		  public void actionPerformed( ActionEvent e ) 
		  {
			  T += 1;
			  panel.repaint();
		  }
	});

	t.start();

	Container c = getContentPane();
	c.setLayout( new FlowLayout() );

	c.add( panel );
}

class Panel extends JPanel
{		

  public Panel() 
  {
		setPreferredSize(new Dimension(600, 600));
		setBackground(Color.DARK_GRAY);
  }

  public void paint( Graphics g )  
  {
	  super.paintComponent(g);
	  Graphics2D g2 = (Graphics2D) g;

	  Rectangle2D rect;

	  g2.setColor( Color.white );	  

	  if( T < 250 )
	  {
		  rect = new Rectangle2D.Float(T, 50, 100, 50);
	  }
	  else if( T < 650 )
	  {
		  rect = new Rectangle2D.Float(250, (50 + T) - 250, 100, 50);
	  }
	  else
		  rect = new Rectangle2D.Float(250, 450 - (T - 650), 100, 50);

	  g2.draw( rect );
	  g2.drawLine(0, 100, 250, 100);
	  g2.drawLine(350, 100, 600, 100);
	  g2.drawLine(250, 100, 250, 400);
	  g2.drawLine(350, 100, 350, 400);
	  g2.drawLine(0, 100, 250, 400);
	  g2.drawLine(350, 400, 600, 100);
	  g2.drawLine(250, 500, 350, 500);
  }

}

public static void main( String[] args )
{
	Firkant vindu = new Firkant();
	vindu.setVisible( true );
	vindu.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}

Endret av Sir Zu Zwat
Lenke til kommentar
Videoannonse
Annonse
  • 3 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...