package makeposterbg; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; /** * * @author mfiume */ public class MakePosterBG { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int width = 1200; int height = 900; JFrame f = new JFrame(); JPanel p = new JPanel(); p.setPreferredSize(new Dimension(width, height)); f.add(p); p.setBackground(Color.white); p.setLayout(new FlowLayout()); generateTwo(p); f.pack(); f.setVisible(true); BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics g = bi.createGraphics(); p.paint(g); //this == JComponent g.dispose(); try { ImageIO.write(bi, "png", new File("test.png")); } catch (Exception e) { } } public static void generateTwo(JPanel p) { int counter = 0; int ringDiameter = 30; Random generator = new Random(); double max = (1200/ringDiameter)*(900/ringDiameter); while (counter++ != max) { double hit = generator.nextDouble()/2; RingChart ringChart = new RingChart(); ringChart.setMinimumSize(new Dimension(ringDiameter, ringDiameter)); ringChart.setMaximumSize(new Dimension(ringDiameter, ringDiameter)); ringChart.setPreferredSize(new Dimension(ringDiameter, ringDiameter)); Ring r1 = new Ring(); r1.addItem("1", hit, new Color(72, 181, 249)); r1.addItem("2", 1 - hit, Color.gray); ringChart.setRings(Arrays.asList(r1)); p.add(ringChart); } } public static void generateOne(JPanel p) { double progress = 1.0; int counter = 0; int ringDiameter = 200; Random generator = new Random(); double max = 20; while (counter++ != max) { if (progress < 0) { progress = 0; } double hit = generator.nextDouble(); hit = hit / (max / 2); if (counter == max) { progress = 0.02; } RingChart ringChart = new RingChart(); ringChart.setMinimumSize(new Dimension(ringDiameter, ringDiameter)); ringChart.setMaximumSize(new Dimension(ringDiameter, ringDiameter)); ringChart.setPreferredSize(new Dimension(ringDiameter, ringDiameter)); Ring r1 = new Ring(); r1.addItem("1", progress, new Color(72, 181, 249)); r1.addItem("2", 1 - progress, Color.gray); ringChart.setRings(Arrays.asList(r1)); p.add(ringChart); progress -= hit; } } }