1 36 37 40 41 42 package java2d; 43 44 import java.awt.*; 45 import javax.swing.*; 46 import java.awt.event.ItemListener ; 47 import java.awt.event.ItemEvent ; 48 import javax.swing.event.ChangeListener ; 49 import javax.swing.event.ChangeEvent ; 50 import javax.swing.border.TitledBorder ; 51 import javax.swing.border.EtchedBorder ; 52 53 54 58 public class GlobalControls extends JPanel implements ItemListener , ChangeListener { 59 60 static String [] screenNames = { 61 "Auto Screen", "On Screen", "Off Screen", 62 "INT_xRGB", "INT_ARGB", "INT_ARGB_PRE", "INT_BGR", 63 "3BYTE_BGR", "4BYTE_ABGR", "4BYTE_ABGR_PRE", "USHORT_565_RGB", 64 "USHORT_x555_RGB", "BYTE_GRAY", "USHORT_GRAY", 65 "BYTE_BINARY", "BYTE_INDEXED", "BYTE_BINARY 2 bit", "BYTE_BINARY 4 bit", 66 "INT_RGBx", "USHORT_555x_RGB"}; 67 static JComboBox screenCombo; 68 public TextureChooser texturechooser; 69 public JCheckBox aliasCB, renderCB, toolBarCB; 70 public JCheckBox compositeCB, textureCB; 71 public JSlider slider; 72 public Object obj; 73 74 private Font font = new Font("serif", Font.PLAIN, 12); 75 76 77 public GlobalControls() { 78 setLayout(new GridBagLayout()); 79 setBorder(new TitledBorder (new EtchedBorder (), "Global Controls")); 80 81 aliasCB = createCheckBox("Anti-Aliasing", true, 0); 82 renderCB = createCheckBox("Rendering Quality", false, 1); 83 textureCB = createCheckBox("Texture", false, 2); 84 compositeCB = createCheckBox("AlphaComposite", false, 3); 85 86 screenCombo = new JComboBox(); 87 screenCombo.setPreferredSize(new Dimension(120, 18)); 88 screenCombo.setLightWeightPopupEnabled(true); 89 screenCombo.setFont(font); 90 for (int i = 0; i < screenNames.length; i++) { 91 screenCombo.addItem(screenNames[i]); 92 } 93 screenCombo.addItemListener(this); 94 Java2Demo.addToGridBag(this, screenCombo, 0, 4, 1, 1, 0.0, 0.0); 95 96 toolBarCB = createCheckBox("Tools", false, 5); 97 98 slider = new JSlider(JSlider.HORIZONTAL, 0, 200, 30); 99 slider.addChangeListener(this); 100 TitledBorder tb = new TitledBorder (new EtchedBorder ()); 101 tb.setTitleFont(font); 102 tb.setTitle("Anim delay = 30 ms"); 103 slider.setBorder(tb); 104 slider.setMinimumSize(new Dimension(80,46)); 105 Java2Demo.addToGridBag(this, slider, 0, 6, 1, 1, 1.0, 1.0); 106 107 texturechooser = new TextureChooser(0); 108 Java2Demo.addToGridBag(this, texturechooser, 0, 7, 1, 1, 1.0, 1.0); 109 } 110 111 112 private JCheckBox createCheckBox(String s, boolean b, int y) { 113 JCheckBox cb = new JCheckBox(s, b); 114 cb.setFont(font); 115 cb.setHorizontalAlignment(JCheckBox.LEFT); 116 cb.addItemListener(this); 117 Java2Demo.addToGridBag(this, cb, 0, y, 1, 1, 1.0, 1.0); 118 return cb; 119 } 120 121 122 public void stateChanged(ChangeEvent e) { 123 int value = slider.getValue(); 124 TitledBorder tb = (TitledBorder ) slider.getBorder(); 125 tb.setTitle("Anim delay = " + String.valueOf(value) + " ms"); 126 int index = Java2Demo.tabbedPane.getSelectedIndex()-1; 127 DemoGroup dg = Java2Demo.group[index]; 128 JPanel p = dg.getPanel(); 129 for (int i = 0; i < p.getComponentCount(); i++) { 130 DemoPanel dp = (DemoPanel) p.getComponent(i); 131 if (dp.tools != null && dp.tools.slider != null) { 132 dp.tools.slider.setValue(value); 133 } 134 } 135 slider.repaint(); 136 } 137 138 139 public void itemStateChanged(ItemEvent e) { 140 if (Java2Demo.tabbedPane.getSelectedIndex() != 0) { 141 obj = e.getSource(); 142 int index = Java2Demo.tabbedPane.getSelectedIndex()-1; 143 Java2Demo.group[index].setup(true); 144 obj = null; 145 } 146 } 147 148 149 public Dimension getPreferredSize() { 150 return new Dimension(135,260); 151 } 152 } 153 | Popular Tags |