Thread: icon
View Single Post
  #2 (permalink)  
Old 05-16-2008, 08:34 PM
hardwired hardwired is offline
Senior Member
 
Join Date: Jul 2007
Posts: 1,189
hardwired is on a distinguished road
Code:
import java.awt.*; import java.awt.image.BufferedImage; import java.util.Random; import javax.swing.*; public class RandomImagesTest2 { BufferedImage[] images; Random seed = new Random(); JLabel left; JLabel right; RandomImagesTest2() { makeImages(); new Thread(runner).start(); } private Runnable runner = new Runnable() { long delay = 1000; boolean animate = true; boolean firstTime = true; public void run() { while(animate) { try { Thread.sleep(delay); } catch(InterruptedException e) { animate = false; } left.setIcon(getIcon()); right.setIcon(getIcon()); if(firstTime && left.isVisible()) { Rectangle rL = left.getBounds(); Rectangle rR = right.getBounds(); System.out.printf("leftBounds = [%d, %d, %d, %d] " + "rightBounds = [%d, %d, %d, %d]%n", rL.x, rL.y, rL.width, rL.height, rR.x, rR.y, rR.width, rR.height); firstTime = false; } left.repaint(); right.repaint(); } } }; private void makeImages() { int alpha = 140; Color[] colors = { new Color(255, 0, 0, alpha), new Color(0, 0, 255, alpha) }; int w = 90, h = 50; int type = BufferedImage.TYPE_INT_ARGB; images = new BufferedImage[colors.length]; for(int i = 0; i < images.length; i++) { images[i] = new BufferedImage(w, h, type); Graphics2D g2 = images[i].createGraphics(); g2.setBackground(colors[i]); g2.clearRect(0,0,w,h); g2.dispose(); } } private JPanel getContent() { left = new JLabel(getIcon(), JLabel.CENTER); right = new JLabel(getIcon(), JLabel.CENTER); JPanel panel = new JPanel(null); panel.add(left); panel.add(right); left.setBounds(50,50,90,50); right.setBounds(100,50,90,50); return panel; } private ImageIcon getIcon() { int n = seed.nextInt(images.length); return new ImageIcon(images[n]); } public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(new RandomImagesTest2().getContent()); f.setSize(300,300); f.setLocation(200,200); f.setVisible(true); } }
Reply With Quote