1 36 37 40 41 42 package java2d; 43 44 import java.awt.Component ; 45 import java.awt.Color ; 46 import java.awt.Font ; 47 import java.awt.BorderLayout ; 48 import java.awt.Dimension ; 49 import java.awt.event.MouseEvent ; 50 import javax.swing.JPanel ; 51 import javax.swing.JScrollPane ; 52 import javax.swing.JTextArea ; 53 import javax.swing.border.EmptyBorder ; 54 import javax.swing.border.SoftBevelBorder ; 55 import javax.swing.border.CompoundBorder ; 56 57 60 public class CloningFeature extends JPanel implements Runnable { 61 62 private Thread thread; 63 private JTextArea ta; 64 65 66 public CloningFeature() { 67 68 setLayout(new BorderLayout ()); 69 EmptyBorder eb = new EmptyBorder (5,5,5,5); 70 SoftBevelBorder sbb = new SoftBevelBorder (SoftBevelBorder.RAISED); 71 setBorder(new CompoundBorder (eb, sbb)); 72 73 ta = new JTextArea ("Cloning Demonstrated\n\nClicking once on a demo\n"); 74 ta.setMinimumSize(new Dimension (300,500)); 75 JScrollPane scroller = new JScrollPane (); 76 scroller.getViewport().add(ta); 77 ta.setFont(new Font ("Dialog", Font.PLAIN, 14)); 78 ta.setForeground(Color.black); 79 ta.setBackground(Color.lightGray); 80 ta.setEditable(false); 81 82 add("Center", scroller); 83 84 start(); 85 } 86 87 public void start() { 88 thread = new Thread (this); 89 thread.setPriority(Thread.MAX_PRIORITY); 90 thread.setName("CloningFeature"); 91 thread.start(); 92 } 93 94 public void stop() { 95 if (thread != null) { 96 thread.interrupt(); 97 } 98 thread = null; 99 } 100 101 102 public void run() { 103 104 105 int index = Java2Demo.tabbedPane.getSelectedIndex(); 106 if (index == 0) { 107 Java2Demo.tabbedPane.setSelectedIndex(1); 108 try { thread.sleep(3333); } catch (Exception e) { return; } 109 } 110 111 if (!Java2Demo.controls.toolBarCB.isSelected()) { 112 Java2Demo.controls.toolBarCB.setSelected(true); 113 try { thread.sleep(2222); } catch (Exception e) { return; } 114 } 115 116 index = Java2Demo.tabbedPane.getSelectedIndex()-1; 117 DemoGroup dg = Java2Demo.group[index]; 118 DemoPanel dp = (DemoPanel) dg.getPanel().getComponent(0); 119 if (dp.surface == null) { 120 ta.append("Sorry your zeroth component is not a Surface."); 121 return; 122 } 123 124 dg.mouseClicked(new MouseEvent (dp.surface, MouseEvent.MOUSE_CLICKED, 0, 0, 10, 10, 1, false)); 125 126 try { thread.sleep(3333); } catch (Exception e) { return; } 127 128 ta.append("Clicking the ToolBar double document button\n"); 129 try { thread.sleep(3333); } catch (Exception e) { return; } 130 131 dp = (DemoPanel) dg.clonePanels[0].getComponent(0); 132 133 if (dp.tools != null) { 134 for (int i = 0; i < 3 && thread != null; i++) { 135 ta.append(" Cloning\n"); 136 dp.tools.cloneB.doClick(); 137 try { thread.sleep(3333); } catch (Exception e) { return; } 138 } 139 } 140 141 ta.append("Changing attributes \n"); 142 143 try { thread.sleep(3333); } catch (Exception e) { return; } 144 145 Component cmps[] = dg.clonePanels[0].getComponents(); 146 for (int i = 0; i < cmps.length && thread != null; i++) { 147 if ((dp = (DemoPanel) cmps[i]).tools == null) { 148 continue; 149 } 150 switch (i) { 151 case 0 : ta.append(" Changing AntiAliasing\n"); 152 dp.tools.aliasB.doClick(); 153 break; 154 case 1 : ta.append(" Changing Composite & Texture\n"); 155 dp.tools.compositeB.doClick(); 156 dp.tools.textureB.doClick(); 157 break; 158 case 2 : ta.append(" Changing Screen\n"); 159 dp.tools.screenCombo.setSelectedIndex(4); 160 break; 161 case 3 : ta.append(" Removing a clone\n"); 162 dp.tools.cloneB.doClick(); 163 } 164 try { thread.sleep(3333); } catch (Exception e) { return; } 165 } 166 167 ta.append("\nAll Done!"); 168 } 169 } 170 | Popular Tags |