java第六次作业

package com.lzw;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;


public class Demo extends JFrame {

private final class ButtonActionListener implements
ActionListener {
private final ImagePanel imagePanel;
private Thread imageThread;


private ButtonActionListener(ImagePanel imagePanel) {
this.imagePanel = imagePanel;
}

public void actionPerformed(final ActionEvent e) {

if (imageThread == null || !imageThread.isAlive()) {
imageThread = new Thread(imagePanel);
imageThread.start();
} else if (!imageThread.isAlive()) {
imageThread.start();
}
}
}


public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Demo frame = new Demo();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}


public Demo() {
super();
setTitle("抽奖大转盘");
setResizable(false);
setBounds(100, 100, 700, 700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final ImagePanel imagePanel = new ImagePanel();

getContentPane().add(imagePanel, BorderLayout.CENTER);
final JButton button = new JButton();
button.setCursor(Cursor
.getPredefinedCursor(Cursor.HAND_CURSOR));
button.setPressedIcon(new ImageIcon(getClass()
.getResource("bt2.png")));
button.setFocusPainted(false);
button.setBorderPainted(false);
button.addActionListener(new ButtonActionListener(
imagePanel));

button.setIcon(new ImageIcon(getClass().getResource(
"bt.png")));
button.setOpaque(false);
button.setContentAreaFilled(false);
button.setBorder(null);
button.setBounds(277, 202, 139, 209);
imagePanel.add(button);
}
}

package com.lzw;

import java.awt.*;
import java.net.URL;

import javax.swing.JPanel;

/**
*
*/
public class ImagePanel extends JPanel implements Runnable {
private static Image image;
private static Image rotateIcon;
private double angle = 0;
private static Toolkit tk = Toolkit.getDefaultToolkit();

public ImagePanel() {
URL bgUrl = getClass().getResource("bg.jpg"); 
URL rotateUrl = getClass().getResource("rotate.png");

image = tk.createImage(bgUrl);
rotateIcon = tk.createImage(rotateUrl);
setOpaque(false);
setLayout(null);
}

protected void paintComponent(Graphics g) {
int width = getWidth();
int height = getHeight();
if (image != null) {
g.drawImage(image, 0, 0, width, height, this);
}
Graphics2D g1 = (Graphics2D) g.create();

g1.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
if (rotateIcon != null) {
int iconWidth = rotateIcon.getWidth(this);
int iconHeight = rotateIcon.getHeight(this);

g1.rotate(Math.toRadians(angle), width / 2,
height / 2);
g1.drawImage(rotateIcon, width / 2 - iconWidth / 2,
height / 2 - iconHeight / 2, this);
}
}

int count = 0;
int temp = 0;
int randNum = 0;

@Override
public void run() {
double stAngle = Math.random() * 360;
angle = stAngle;
while (angle < stAngle + 1200) {
angle += 6;
repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
double sleepTime = 10;
while (sleepTime < 90) {
angle += 6;
repaint();
try {
Thread.sleep((int) (sleepTime += 0.5));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

原文地址:https://www.cnblogs.com/ZC962464/p/5470476.html