package edu.umd.cs.piccolox.pswing; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JColorChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSlider; import javax.swing.JSpinner; import javax.swing.JTextArea; import javax.swing.JTree; import javax.swing.border.LineBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import edu.umd.cs.piccolo.PNode; import edu.umd.cs.piccolo.event.PZoomEventHandler; import edu.umd.cs.piccolo.nodes.PText; /** * User: Sam Reid Date: Jul 11, 2005 Time: 12:15:55 PM */ public class TestPSwing { public static void main(String[] args) { PSwingCanvas pCanvas = new PSwingCanvas(); final PText pText = new PText("PText"); pCanvas.getLayer().addChild(pText); JFrame frame = new JFrame("Test Piccolo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(pCanvas); frame.setSize(600, 800); frame.setVisible(true); PText text2 = new PText("Text2"); text2.setFont(new Font("Lucida Sans", Font.BOLD, 18)); pCanvas.getLayer().addChild(text2); text2.translate(100, 100); text2.addInputEventListener(new PZoomEventHandler()); pCanvas.removeInputEventListener(pCanvas.getPanEventHandler()); JButton jButton = new JButton("MyButton!"); jButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("TestZSwing.actionPerformed!!!!!!!!!!!!!!*********************"); } }); final PSwing pSwing = new PSwing(jButton); pCanvas.getLayer().addChild(pSwing); pSwing.repaint(); JSpinner jSpinner = new JSpinner(); jSpinner.setPreferredSize(new Dimension(100, jSpinner.getPreferredSize().height)); PSwing pSpinner = new PSwing(jSpinner); pCanvas.getLayer().addChild(pSpinner); pSpinner.translate(0, 150); JCheckBox jcb = new JCheckBox("CheckBox", true); jcb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("TestZSwing.JCheckBox.actionPerformed"); } }); jcb.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { System.out.println("TestPSwing.JChekbox.stateChanged@" + System.currentTimeMillis()); } }); PSwing pCheckBox = new PSwing(jcb); pCanvas.getLayer().addChild(pCheckBox); pCheckBox.translate(100, 0); // Growable JTextArea JTextArea textArea = new JTextArea("This is a growable TextArea.\nTry it out!"); textArea.setBorder(new LineBorder(Color.blue, 3)); PSwing swing = new PSwing(textArea); swing.translate(150, 150); pCanvas.getLayer().addChild(swing); // A Slider JSlider slider = new JSlider(); PSwing pSlider = new PSwing(slider); pSlider.translate(200, 200); pCanvas.getLayer().addChild(pSlider); // A Scrollable JTree JTree tree = new JTree(); tree.setEditable(true); JScrollPane p = new JScrollPane(tree); p.setPreferredSize(new Dimension(150, 150)); PSwing pTree = new PSwing(p); pCanvas.getLayer().addChild(pTree); pTree.translate(0, 250); // A JColorChooser - also demonstrates JTabbedPane JColorChooser chooser = new JColorChooser(); PSwing pChooser = new PSwing(chooser); pCanvas.getLayer().addChild(pChooser); pChooser.translate(100, 300); JPanel myPanel = new JPanel(); myPanel.setBorder(BorderFactory.createTitledBorder("Titled Border")); myPanel.add(new JCheckBox("CheckBox")); PSwing panelSwing = new PSwing(myPanel); pCanvas.getLayer().addChild(panelSwing); panelSwing.translate(400, 50); // A Slider JSlider slider2 = new JSlider(); PSwing pSlider2 = new PSwing(slider2); pSlider2.translate(200, 200); PNode root = new PNode(); root.addChild(pSlider2); root.scale(1.5); root.rotate(Math.PI / 4); root.translate(300, 200); pCanvas.getLayer().addChild(root); String[] listItems = { "Summer Teeth", "Mermaid Avenue", "Being There", "A.M." }; PComboBox box = new PComboBox(listItems); swing = new PSwing(box); swing.translate(200, 250); pCanvas.getLayer().addChild(swing); box.setEnvironment(swing, pCanvas);// has to be done manually at present // Revalidate and repaint pCanvas.revalidate(); pCanvas.repaint(); } }