Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

import java.awt.BorderLayout;




 

 


 

package Prm;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Container;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Rectangle;

import java.awt.Shape;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.geom.AffineTransform;

 

import javax.swing.JApplet;

import javax.swing.JButton;

import javax.swing.JPanel;

import javax.swing.SwingUtilities;

 

public class Prm extends JApplet

{

private static final long serialVersionUID = 1L;

private static final int RECT_WIDTH = 300;

private static final int RECT_HEIGHT = 250;

private static final int ROTATE_INCR_DEGREE = 5;

private ImagePanel imPanel;

private JButton startButton;

private RotateThread thread = null;

private boolean programStarted = false;

private int rotateDelay = 50;

private int rotateDegree = 0;

 

public void init()

{

setSize(600, 600);

try

{

SwingUtilities.invokeAndWait(new Runnable() {

public void run()

{

makeGUI();

}

});

}

catch (Exception exc)

{

System.out.println("Ошибка инициализации: " + exc);

}

}

 

public void makeGUI()

{

Container contentPane = getContentPane();

contentPane.setLayout(new BorderLayout());

JPanel p = new JPanel();

contentPane.add(p, BorderLayout.SOUTH);

imPanel = new ImagePanel();

contentPane.add(imPanel, BorderLayout.CENTER);

startButton = new JButton("Пуск");

p.add(startButton);

startButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)

{

if (!programStarted)

{

startButton.setText("Остановить");

thread = new RotateThread();

thread.setStartFlag(true);

programStarted = true;

thread.start();

 

}

else

{

thread.setStartFlag(false);

thread = null;

programStarted = false;

startButton.setText("Пуск");

}

 

}

});

}

 

public void rotate()

{

rotateDegree += ROTATE_INCR_DEGREE;

if (rotateDegree == 360)

{

rotateDegree = 0;

}

}

 

class RotateThread extends Thread

{

private volatile boolean startFlag;

 

public void setStartFlag(boolean flag)

{

startFlag = flag;

}

 

public void run()

{

for (;;)

{

try

{

rotate();

imPanel.repaint();

Thread.sleep(rotateDelay);

if (!startFlag)

break;

}

catch (InterruptedException e)

{

}

 

}

}

}

 

class ImagePanel extends JPanel

{

private static final long serialVersionUID = 1L;

 

public ImagePanel()

{

super();

this.setOpaque(false);

}

 

public void paintComponent(Graphics g)

{

Graphics2D gg = (Graphics2D)g.create();

gg.setColor(Color.MAGENTA);

Rectangle rect = new Rectangle((getWidth() - RECT_WIDTH) / 2,

(getHeight() - RECT_HEIGHT) / 2, RECT_WIDTH, RECT_HEIGHT);

AffineTransform at = AffineTransform.getRotateInstance(

rotateDegree, rect.getCenterX(), rect.getCenterY());

Shape transformed = at.createTransformedShape(rect);

gg.fill(transformed);

 

super.paintComponent(gg);

}

}

}

 

 


Дата добавления: 2015-08-29; просмотров: 26 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Дисциплина: Теоретическая механика | Иррационализм — фил учение, настаивающее на ограниченных возможностях разума, мышления и признающее осн родом познания интуицию, чувство, инстинкт Считает действительность хаотичной, лишенной

mybiblioteka.su - 2015-2024 год. (0.008 сек.)