/** * @author Kristof Friedrichsen * @author Ryan Mann * @author Bob Free * @author Pat O'Neill * @version December 15, 2006 **/ package chutesladder; import javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.border.BevelBorder; import javax.swing.BorderFactory; import javax.swing.border.Border; import javax.swing.ImageIcon; import javax.swing.SwingConstants; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Color; import java.awt.Dimension; import javax.swing.SpringLayout; import java.awt.FlowLayout; import java.awt.BorderLayout; import java.lang.Integer; public class SpinnerPanel extends JPanel { private JLabel lbSpinner; private ImageIcon spinnerIcon; private ImageIcon spinnerbg; private int intW; private int intH; private long angle = -30; public SpinnerPanel() { spinnerIcon = new ImageIcon("src/Resources/spinner225.jpg"); lbSpinner = new JLabel(spinnerIcon); lbSpinner.setBackground(Color.BLACK); this.setPreferredSize(new Dimension(200,200)); intW = spinnerIcon.getIconWidth(); intH = spinnerIcon.getIconHeight(); } public void changeAngle(int x) { angle += x; } public void paintComponent(Graphics g) { try { super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; // change the numbers 60 and 50 for different rotation effects g2.rotate(Math.toRadians(angle), intW/2+17, intH/2+17); // and these two as well g2.drawImage(spinnerIcon.getImage(), 17, 17, this); g2.dispose(); } catch (NullPointerException npe) {} } }