aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/examples/gnu
diff options
context:
space:
mode:
authorMark Wielaard <mark@gcc.gnu.org>2006-03-10 21:46:48 +0000
committerMark Wielaard <mark@gcc.gnu.org>2006-03-10 21:46:48 +0000
commit8aa540d2f783474d1d2e06f16744bf67b9c1facc (patch)
treeea38c56431c5d4528fb54254c3f8e50f517bede3 /libjava/classpath/examples/gnu
parent27079765d00123f8e53d0e1ef7f9d46559266e6d (diff)
downloadgcc-8aa540d2f783474d1d2e06f16744bf67b9c1facc.zip
gcc-8aa540d2f783474d1d2e06f16744bf67b9c1facc.tar.gz
gcc-8aa540d2f783474d1d2e06f16744bf67b9c1facc.tar.bz2
Imported GNU Classpath 0.90
Imported GNU Classpath 0.90 * scripts/makemake.tcl: Set gnu/java/awt/peer/swing to ignore. * gnu/classpath/jdwp/VMFrame.java (SIZE): New constant. * java/lang/VMCompiler.java: Use gnu.java.security.hash.MD5. * java/lang/Math.java: New override file. * java/lang/Character.java: Merged from Classpath. (start, end): Now 'int's. (canonicalName): New field. (CANONICAL_NAME, NO_SPACES_NAME, CONSTANT_NAME): New constants. (UnicodeBlock): Added argument. (of): New overload. (forName): New method. Updated unicode blocks. (sets): Updated. * sources.am: Regenerated. * Makefile.in: Likewise. From-SVN: r111942
Diffstat (limited to 'libjava/classpath/examples/gnu')
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java4
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java9
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java7
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java35
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java38
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java196
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java112
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/MiniDemo.java233
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java27
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java53
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java230
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java236
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java41
13 files changed, 977 insertions, 244 deletions
diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java
index 83178f9..fa8966f 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java
@@ -433,7 +433,6 @@ public class PlayingDesk
else
{
blacks.add(new Point(x, y));
- repaint();
if (victory != null)
{
@@ -447,7 +446,8 @@ public class PlayingDesk
frame.talk(Color.black, "Partner goes " + x + "-" + y
+ ". Your move?");
player.set_current_state(I_THINK);
- }
+ }
+ repaint();
}
}
catch (RemoteException rex)
diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java
index 17a6260..a0c33df 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java
@@ -57,13 +57,8 @@ import org.omg.PortableServer.Servant;
* Tie on the client side. The Game Manager methods contain the code for remote
* invocation.
*
- * This class is normally generated with rmic from the {@link GameManagerImpl}:
- *
- * <pre>
- * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.GameManagerImpl
- * </pre>
- *
- * (the compiled package must be present in the current folder).
+ * This class is normally generated with rmic or grmic from the
+ * {@link GameManagerImpl}. See tools/gnu/classpath/tools/giop/README.
*
* In this example the class was manually edited and commented for better
* understanding of functionality.
diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java
index 730c6f4..f6c5f47 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java
@@ -58,11 +58,8 @@ import org.omg.PortableServer.Servant;
* rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.PlayerImpl
* (the compiled package must be present in the current folder).
*
- * This class is normally generated with rmic from the {@link PlayerImpl}:
- * <pre>
- * rmic -iiop -poa -keep gnu.classpath.examples.CORBA.swing.x5.PlayerImpl
- * </pre>
- * (the compiled package must be present in the current folder).
+ * This class is normally generated with rmic or grmic from the
+ * {@link PlayerImpl}. See tools/gnu/classpath/tools/giop/README.
*
* In this example the class was manually edited and commented for better
* understanding of functionality.
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java
index b53ba3b..856917f 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/ButtonDemo.java
@@ -1,5 +1,5 @@
/* ButtonDemo.java -- An example showing various buttons in Swing.
- Copyright (C) 2005, Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath examples.
@@ -46,6 +46,8 @@ public class ButtonDemo
implements ActionListener
{
+ private JPanel content;
+
private JCheckBox buttonState;
private JButton button1;
private JButton button2;
@@ -77,6 +79,19 @@ public class ButtonDemo
{
super(title);
JPanel content = createContent();
+ // initFrameContent() is only called (from main) when running this app
+ // standalone
+ }
+
+ /**
+ * When the demo is run independently, the frame is displayed, so we should
+ * initialise the content panel (including the demo content and a close
+ * button). But when the demo is run as part of the Swing activity board,
+ * only the demo content panel is used, the frame itself is never displayed,
+ * so we can avoid this step.
+ */
+ public void initFrameContent()
+ {
JPanel closePanel = new JPanel();
JButton closeButton = new JButton("Close");
closeButton.setActionCommand("CLOSE");
@@ -95,13 +110,16 @@ public class ButtonDemo
*/
JPanel createContent()
{
- JPanel content = new JPanel(new BorderLayout());
- JPanel panel = new JPanel(new GridLayout(4, 1));
- panel.add(createButtonPanel());
- panel.add(createTogglePanel());
- panel.add(createCheckBoxPanel());
- panel.add(createRadioPanel());
- content.add(panel);
+ if (content == null)
+ {
+ content = new JPanel(new BorderLayout());
+ JPanel panel = new JPanel(new GridLayout(4, 1));
+ panel.add(createButtonPanel());
+ panel.add(createTogglePanel());
+ panel.add(createCheckBoxPanel());
+ panel.add(createRadioPanel());
+ content.add(panel);
+ }
return content;
}
@@ -277,6 +295,7 @@ public class ButtonDemo
public static void main(String[] args)
{
ButtonDemo app = new ButtonDemo("Button Demo");
+ app.initFrameContent();
app.pack();
app.setVisible(true);
}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java
index 52431cb..2af619c 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/ComboBoxDemo.java
@@ -1,5 +1,5 @@
/* ComboBoxDemo.java -- An example showing various combo boxes in Swing.
- Copyright (C) 2005, Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, Free Software Foundation, Inc.
This file is part of GNU Classpath examples.
@@ -69,6 +69,7 @@ public class ComboBoxDemo
}
}
+ private JPanel content;
private JCheckBox comboState1;
private JComboBox combo1;
private JComboBox combo2;
@@ -102,6 +103,19 @@ public class ComboBoxDemo
{
super(title);
JPanel content = createContent();
+ // initFrameContent() is only called (from main) when running this app
+ // standalone
+ }
+
+ /**
+ * When the demo is run independently, the frame is displayed, so we should
+ * initialise the content panel (including the demo content and a close
+ * button). But when the demo is run as part of the Swing activity board,
+ * only the demo content panel is used, the frame itself is never displayed,
+ * so we can avoid this step.
+ */
+ public void initFrameContent()
+ {
JPanel closePanel = new JPanel();
JButton closeButton = new JButton("Close");
closeButton.setActionCommand("CLOSE");
@@ -120,15 +134,18 @@ public class ComboBoxDemo
*/
JPanel createContent()
{
- JPanel content = new JPanel(new BorderLayout());
- JPanel panel = new JPanel(new GridLayout(6, 1));
- panel.add(createPanel1());
- panel.add(createPanel2());
- panel.add(createPanel3());
- panel.add(createPanel4());
- panel.add(createPanel5());
- panel.add(createPanel6());
- content.add(panel);
+ if (content == null)
+ {
+ content = new JPanel(new BorderLayout());
+ JPanel panel = new JPanel(new GridLayout(6, 1));
+ panel.add(createPanel1());
+ panel.add(createPanel2());
+ panel.add(createPanel3());
+ panel.add(createPanel4());
+ panel.add(createPanel5());
+ panel.add(createPanel6());
+ content.add(panel);
+ }
return content;
}
@@ -353,6 +370,7 @@ public class ComboBoxDemo
e.printStackTrace();
}
ComboBoxDemo app = new ComboBoxDemo("ComboBox Demo");
+ app.initFrameContent();
app.pack();
app.setVisible(true);
}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java
index 549a42e..7cb7226 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java
@@ -1,5 +1,5 @@
/* SwingDemo.java -- An example of using the javax.swing UI.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath examples.
@@ -163,18 +163,6 @@ public class Demo
new PopUpAction("Buttons",
(new ButtonDemo("Button Demo")).createContent(),
examples);
-
- new PopUpAction("Toggles",
- mkToggle("cool and refreshing"),
- examples);
-
- new PopUpAction("Checkbox",
- mkCheckbox("ice cold"),
- examples);
-
- new PopUpAction("Radio",
- mkRadio("delicious"),
- examples);
new PopUpAction("Slider",
(new SliderDemo("Slider Demo")).createContent(),
@@ -214,8 +202,7 @@ public class Demo
examples);
new PopUpAction("Spinner",
- mkSpinner(),
- examples);
+ new SpinnerDemo("Spinner Demo").createContent(), examples);
new PopUpAction("TextField",
(new TextFieldDemo("TextField Demo")).createContent(),
@@ -715,6 +702,7 @@ public class Demo
main.add(mkButtonBar());
component.add(main, BorderLayout.CENTER);
frame.pack();
+ frame.setSize(800, 600);
frame.show();
}
@@ -732,26 +720,6 @@ public class Demo
SwingUtilities.invokeLater(new LaterMain());
}
- public static JCheckBox mkCheckbox(String label)
- {
- JCheckBox c = new JCheckBox(label);
- c.setFont(new Font("Luxi", Font.PLAIN, 14));
- return c;
- }
-
- public static JPanel mkRadio(String label)
- {
- JPanel p = new JPanel();
- JRadioButton c = new JRadioButton(label);
- JRadioButton d = new JRadioButton("not " + label);
- ButtonGroup bg = new ButtonGroup();
- bg.add(c);
- bg.add(d);
- p.add(c);
- p.add(d);
- return p;
- }
-
public static JList mkList(Object[] elts)
{
JList list = new JList(elts);
@@ -775,12 +743,6 @@ public class Demo
return box;
}
- public static JSpinner mkSpinner()
- {
- JSpinner spinner = new JSpinner();
- return spinner;
- }
-
public static JButton mkBigButton(String title)
{
JButton b = new JButton(title);
@@ -789,14 +751,6 @@ public class Demo
return b;
}
- public static JToggleButton mkToggle(String title)
- {
- JToggleButton b = new JToggleButton(title);
- b.setMargin(new Insets(5,5,5,5));
- b.setFont(new Font("Luxi", Font.PLAIN, 14));
- return b;
- }
-
public static JPanel mkPanel(JComponent[] inners)
{
JPanel p = new JPanel();
@@ -947,37 +901,16 @@ public class Demo
return editorPane;
}
- private static JTree mkTree()
+ /**
+ * Create the tree.
+ *
+ * @return thr scroll pane, containing the tree.
+ */
+ private static JComponent mkTree()
{
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root node");
- DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("Child node 1");
- DefaultMutableTreeNode child11 =
- new DefaultMutableTreeNode("Child node 1.1");
- DefaultMutableTreeNode child12 =
- new DefaultMutableTreeNode("Child node 1.2");
- DefaultMutableTreeNode child13 =
- new DefaultMutableTreeNode("Child node 1.3");
- DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("Child node 2");
- DefaultMutableTreeNode child21 =
- new DefaultMutableTreeNode("Child node 2.1");
- DefaultMutableTreeNode child22 =
- new DefaultMutableTreeNode("Child node 2.2");
- DefaultMutableTreeNode child23 =
- new DefaultMutableTreeNode("Child node 2.3");
- DefaultMutableTreeNode child24 =
- new DefaultMutableTreeNode("Child node 2.4");
-
- DefaultMutableTreeNode child3 = new DefaultMutableTreeNode("Child node 3");
- root.add(child1);
- root.add(child2);
- root.add(child3);
- child1.add(child11);
- child1.add(child12);
- child1.add(child13);
- child2.add(child21);
- child2.add(child22);
- child2.add(child23);
- child2.add(child24);
+
+ addChildren("Node", root, 12);
JTree tree = new JTree(root);
tree.setLargeModel(true);
@@ -985,60 +918,58 @@ public class Demo
dtsm.setSelectionMode(DefaultTreeSelectionModel.SINGLE_TREE_SELECTION);
tree.setSelectionModel(dtsm);
- return tree;
+ // Make it editable.
+ tree.setEditable(true);
+
+ JComponent t = mkScrollPane(tree);
+ t.setPreferredSize(new Dimension(200,200));
+ return t;
}
-
- private static JTable mkTable()
+
+ /**
+ * Add the specified number of children to this parent node. For each
+ * child, the method is called recursively adding the nChildren-3 number of
+ * grandchildren.
+ *
+ * @param parent the parent node
+ * @param nChildren the number of children
+ */
+ private static void addChildren(String name, DefaultMutableTreeNode parent,
+ int nChildren)
{
- Object[][] tableData = new Object[][] {
- {
- "Field 1", "Field 2" , "Field 3"
- },
- {
- "Field 4", "Field 5" , "Field 6"
- },
- {
- "Field 7", "Field 8" , "Field 9"
- },
+ for (int i = 0; i < nChildren; i++)
{
- "Field 10", "Field 11" , "Field 12"
+ String child_name = parent+"."+i;
+ DefaultMutableTreeNode child = new DefaultMutableTreeNode
+ (child_name);
+ parent.add(child);
+ addChildren(child_name, child, nChildren-3);
}
- };
- Object[] columnNames = new Object[] {"Column 1", "Column 2", "Column 3"};
-
- JTable table = new JTable(tableData, columnNames);
- return table;
+ }
+
+ /**
+ * Make a sample table component.
+ */
+ private static JPanel mkTable()
+ {
+ return new TableDemo("Table demo, double click to edit")
+ .createContent();
}
private JPanel mkButtonBar()
{
- JPanel panel = new JPanel (new GridLayout(2, 1));
- JPanel panelA = new JPanel(new FlowLayout());
- JPanel panelB = new JPanel(new FlowLayout());
-
+ JPanel panel = new JPanel(new FlowLayout());
new PopUpAction("Buttons",
(new ButtonDemo("Button Demo")).createContent(),
- panelA);
-
- new PopUpAction("Toggles",
- mkToggle("cool and refreshing"),
- panelA);
-
- new PopUpAction("Checkbox",
- mkCheckbox("ice cold"),
- panelA);
-
- new PopUpAction("Radio",
- mkRadio("delicious"),
- panelA);
+ panel);
new PopUpAction("Slider",
(new SliderDemo("Slider Demo")).createContent(),
- panelA);
+ panel);
new PopUpAction("ProgressBar",
ProgressBarDemo.createContent(),
- panelA);
+ panel);
new PopUpAction("List",
@@ -1050,60 +981,59 @@ public class Demo
"that",
"wraps",
"over"}),
- panelA);
+ panel);
new PopUpAction("Scrollbar",
(new ScrollBarDemo("ScrollBar Demo")).createContent(),
- panelA);
+ panel);
new PopUpAction("Viewport",
mkViewportBox(mkBigButton("View Me!")),
- panelA);
+ panel);
new PopUpAction("ScrollPane",
mkScrollPane(mkBigButton("Scroll Me!")),
- panelA);
+ panel);
new PopUpAction("TabPane",
mkTabs(new String[] {"happy",
"sad",
"indifferent"}),
- panelB);
+ panel);
- new PopUpAction("Spinner",
- mkSpinner(),
- panelB);
+ new PopUpAction("Spinner",
+ new SpinnerDemo("Spinner Demo").createContent(), panel);
new PopUpAction("TextField",
(new TextFieldDemo("TextField Demo")).createContent(),
- panelB);
+ panel);
new PopUpAction("FileChooser",
(new FileChooserDemo("FileChooser Demo")).createContent(),
- panelB);
+ panel);
new PopUpAction("ColorChooser",
mkColorChooser(),
- panelB);
+ panel);
new PopUpAction("ComboBox",
(new ComboBoxDemo("ComboBox Demo")).createContent(),
- panelB);
+ panel);
new PopUpAction("Editor",
mkEditorPane(),
- panelB);
+ panel);
new PopUpAction("Tree",
mkTree(),
- panelB);
+ panel);
new PopUpAction("Table",
mkTable(),
- panelB);
+ panel);
JButton exitDisposer = mkDisposerButton(frame);
- panelB.add(exitDisposer);
+ panel.add(exitDisposer);
exitDisposer.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
@@ -1111,8 +1041,6 @@ public class Demo
System.exit(1);
}
});
- panel.add(panelA);
- panel.add(panelB);
return panel;
}
}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java
index 70bb56d..de86d23 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/FileChooserDemo.java
@@ -1,5 +1,5 @@
/* FileChooserDemo.java -- An example showing file choosers in Swing.
- Copyright (C) 2005, Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, Free Software Foundation, Inc.
This file is part of GNU Classpath examples.
@@ -63,7 +63,9 @@ public class FileChooserDemo extends JFrame implements ActionListener
return false;
}
}
-
+
+ private JPanel content;
+
/** A label to display the selected file. */
JLabel selectedFileLabel;
@@ -85,6 +87,19 @@ public class FileChooserDemo extends JFrame implements ActionListener
{
super(frameTitle);
JPanel content = createContent();
+ // initFrameContent() is only called (from main) when running this app
+ // standalone
+ }
+
+ /**
+ * When the demo is run independently, the frame is displayed, so we should
+ * initialise the content panel (including the demo content and a close
+ * button). But when the demo is run as part of the Swing activity board,
+ * only the demo content panel is used, the frame itself is never displayed,
+ * so we can avoid this step.
+ */
+ public void initFrameContent()
+ {
JPanel closePanel = new JPanel();
JButton closeButton = new JButton("Close");
closeButton.setActionCommand("CLOSE");
@@ -102,52 +117,56 @@ public class FileChooserDemo extends JFrame implements ActionListener
* added if this demo is being run as a standalone demo).
*/
JPanel createContent()
- {
- JPanel panel = new JPanel(new BorderLayout());
-
- // create a panel of buttons to select the different styles of file
- // chooser...
- JPanel buttonPanel = new JPanel(new GridLayout(5, 1));
- JButton openButton = new JButton("Open...");
- openButton.setActionCommand("OPEN");
- openButton.addActionListener(this);
- buttonPanel.add(openButton);
- JButton saveButton = new JButton("Save...");
- saveButton.setActionCommand("SAVE");
- saveButton.addActionListener(this);
- buttonPanel.add(saveButton);
- JButton queryButton = new JButton("Select Directory...");
- queryButton.setActionCommand("SELECT_DIRECTORY");
- queryButton.addActionListener(this);
- buttonPanel.add(queryButton);
- JButton openJavaButton = new JButton("Open Java file...");
- openJavaButton.setActionCommand("OPEN_JAVA");
- openJavaButton.addActionListener(this);
- buttonPanel.add(openJavaButton);
- JButton openMultiButton = new JButton("Open multiple files...");
- openMultiButton.setActionCommand("OPEN_MULTI");
- openMultiButton.addActionListener(this);
- buttonPanel.add(openMultiButton);
- panel.add(buttonPanel, BorderLayout.WEST);
-
- // create a panel to display the selected file(s) and the return code
- JPanel displayPanel = new JPanel(new BorderLayout());
-
- selectedFileLabel = new JLabel("-");
- selectedFileLabel.setBorder(BorderFactory.createTitledBorder("Selected File/Directory: "));
- displayPanel.add(selectedFileLabel, BorderLayout.NORTH);
+ {
+ if (content == null)
+ {
+ JPanel panel = new JPanel(new BorderLayout());
- selectedFilesList = new JList();
- JScrollPane sp = new JScrollPane(selectedFilesList);
- sp.setBorder(BorderFactory.createTitledBorder("Selected Files: "));
- displayPanel.add(sp);
-
- returnCodeLabel = new JLabel("0");
- returnCodeLabel.setBorder(BorderFactory.createTitledBorder("Return Code:"));
- displayPanel.add(returnCodeLabel, BorderLayout.SOUTH);
+ // create a panel of buttons to select the different styles of file
+ // chooser...
+ JPanel buttonPanel = new JPanel(new GridLayout(5, 1));
+ JButton openButton = new JButton("Open...");
+ openButton.setActionCommand("OPEN");
+ openButton.addActionListener(this);
+ buttonPanel.add(openButton);
+ JButton saveButton = new JButton("Save...");
+ saveButton.setActionCommand("SAVE");
+ saveButton.addActionListener(this);
+ buttonPanel.add(saveButton);
+ JButton queryButton = new JButton("Select Directory...");
+ queryButton.setActionCommand("SELECT_DIRECTORY");
+ queryButton.addActionListener(this);
+ buttonPanel.add(queryButton);
+ JButton openJavaButton = new JButton("Open Java file...");
+ openJavaButton.setActionCommand("OPEN_JAVA");
+ openJavaButton.addActionListener(this);
+ buttonPanel.add(openJavaButton);
+ JButton openMultiButton = new JButton("Open multiple files...");
+ openMultiButton.setActionCommand("OPEN_MULTI");
+ openMultiButton.addActionListener(this);
+ buttonPanel.add(openMultiButton);
+ panel.add(buttonPanel, BorderLayout.WEST);
+
+ // create a panel to display the selected file(s) and the return code
+ JPanel displayPanel = new JPanel(new BorderLayout());
- panel.add(displayPanel);
- return panel;
+ selectedFileLabel = new JLabel("-");
+ selectedFileLabel.setBorder(BorderFactory.createTitledBorder("Selected File/Directory: "));
+ displayPanel.add(selectedFileLabel, BorderLayout.NORTH);
+
+ selectedFilesList = new JList();
+ JScrollPane sp = new JScrollPane(selectedFilesList);
+ sp.setBorder(BorderFactory.createTitledBorder("Selected Files: "));
+ displayPanel.add(sp);
+
+ returnCodeLabel = new JLabel("0");
+ returnCodeLabel.setBorder(BorderFactory.createTitledBorder("Return Code:"));
+ displayPanel.add(returnCodeLabel, BorderLayout.SOUTH);
+
+ panel.add(displayPanel);
+ content = panel;
+ }
+ return content;
}
/**
@@ -221,6 +240,7 @@ public class FileChooserDemo extends JFrame implements ActionListener
public static void main(String[] args)
{
FileChooserDemo app = new FileChooserDemo("File Chooser Demo");
+ app.initFrameContent();
app.pack();
app.setVisible(true);
}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/MiniDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/MiniDemo.java
new file mode 100644
index 0000000..aa84248
--- /dev/null
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/MiniDemo.java
@@ -0,0 +1,233 @@
+/* MiniDemo.java -- A Swing demo suitable for embedded environments
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.classpath.examples.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
+import javax.swing.plaf.metal.DefaultMetalTheme;
+import javax.swing.plaf.metal.MetalIconFactory;
+import javax.swing.plaf.metal.MetalLookAndFeel;
+
+/**
+ * A Swing demo suitable for embedded environments (e.g. small display,
+ * b/w graphics etc).
+ *
+ * @author Roman Kennke (kennke@aicas.com)
+ */
+public class MiniDemo extends JFrame
+{
+
+ /**
+ * Creates a new MiniDemo instance.
+ */
+ MiniDemo()
+ {
+ createGUI();
+ }
+
+ private void createGUI()
+ {
+ JTabbedPane tabPane = new JTabbedPane(JTabbedPane.TOP,
+ JTabbedPane.SCROLL_TAB_LAYOUT);
+
+ // Setup scrolling list in first tab.
+ Object[] listData = new Object[]{"Milk", "Beer", "Wine", "Water",
+ "Orange juice", "Tea", "Coffee", "Whiskey",
+ "Lemonade", "Apple juice", "Gin Tonic",
+ "Pangalactic Garleblaster", "Coke"};
+ JList list = new JList(listData);
+ JScrollPane sp = new JScrollPane(list);
+ tabPane.addTab("List", sp);
+
+ // Setup some buttons in the second tab.
+ JPanel buttonPanel = new JPanel();
+ buttonPanel.setLayout(new GridLayout(4, 1));
+ // JButtons
+ JPanel jButtonPanel = new JPanel();
+ jButtonPanel.setLayout(new BorderLayout());
+ final JCheckBox buttonState1 = new JCheckBox("Enabled", true);
+ jButtonPanel.add(buttonState1, BorderLayout.EAST);
+ JPanel jButtonContainer = new JPanel();
+ final JButton jButton1 = new JButton("JButton");
+ final JButton jButton2 =
+ new JButton(MetalIconFactory.getInternalFrameDefaultMenuIcon());
+ jButtonContainer.add(jButton1);
+ jButtonContainer.add(jButton2);
+ jButtonPanel.add(jButtonContainer, BorderLayout.CENTER);
+ buttonState1.addActionListener(
+ new ActionListener()
+ {
+ public void actionPerformed(ActionEvent ev)
+ {
+ boolean enabled = buttonState1.isSelected();
+ jButton1.setEnabled(enabled);
+ jButton2.setEnabled(enabled);
+ }
+ });
+ buttonPanel.add(jButtonPanel);
+ // JToggleButtons
+ JPanel jToggleButtonPanel = new JPanel();
+ jToggleButtonPanel.setLayout(new BorderLayout());
+ final JCheckBox buttonState2 = new JCheckBox("Enabled", true);
+ jToggleButtonPanel.add(buttonState2, BorderLayout.EAST);
+ JPanel jToggleButtonContainer = new JPanel();
+ final JButton jToggleButton1 = new JButton("JToggleButton");
+ final JButton jToggleButton2 =
+ new JButton(MetalIconFactory.getInternalFrameDefaultMenuIcon());
+ jToggleButtonContainer.add(jToggleButton1);
+ jToggleButtonContainer.add(jToggleButton2);
+ jToggleButtonPanel.add(jToggleButtonContainer, BorderLayout.CENTER);
+ buttonState2.addActionListener(
+ new ActionListener()
+ {
+ public void actionPerformed(ActionEvent ev)
+ {
+ boolean enabled = buttonState2.isSelected();
+ jToggleButton1.setEnabled(enabled);
+ jToggleButton2.setEnabled(enabled);
+ }
+ });
+ buttonPanel.add(jToggleButtonPanel);
+ tabPane.addTab("Buttons", buttonPanel);
+
+ // ComboBoxes
+ JPanel comboBoxPanel = new JPanel();
+ JComboBox comboBox = new JComboBox(listData);
+ comboBoxPanel.add(comboBox);
+ tabPane.add("ComboBox", comboBoxPanel);
+
+ // TextFields
+ JPanel textFieldPanel = new JPanel();
+ textFieldPanel.setLayout(new BoxLayout(textFieldPanel, BoxLayout.Y_AXIS));
+ textFieldPanel.add(Box.createVerticalStrut(70));
+ JPanel leftAlignedPanel = new JPanel(new BorderLayout());
+ JPanel textFieldPanel1 = new JPanel();
+ textFieldPanel1.setLayout(new BoxLayout(textFieldPanel1,
+ BoxLayout.X_AXIS));
+ final JTextField textfield1 = new JTextField("Hello World!");
+ textfield1.setHorizontalAlignment(JTextField.LEFT);
+ textfield1.setFont(new Font("Dialog", Font.PLAIN, 8));
+ textFieldPanel1.add(textfield1);
+ final JTextField textfield2 = new JTextField("Hello World!");
+ textfield2.setHorizontalAlignment(JTextField.LEFT);
+ textfield2.setFont(new Font("Dialog", Font.ITALIC, 12));
+ textFieldPanel1.add(textfield2);
+ final JTextField textfield3 = new JTextField("Hello World!");
+ textfield3.setHorizontalAlignment(JTextField.LEFT);
+ textfield3.setFont(new Font("Dialog", Font.BOLD, 14));
+ textFieldPanel1.add(textfield3);
+ leftAlignedPanel.add(textFieldPanel1);
+ JPanel statePanel = new JPanel();
+ statePanel.setLayout(new BoxLayout(statePanel, BoxLayout.Y_AXIS));
+ statePanel.add(Box.createVerticalGlue());
+ final JCheckBox enabled1 = new JCheckBox("enabled");
+ enabled1.setSelected(true);
+ enabled1.addActionListener(
+ new ActionListener()
+ {
+ public void actionPerformed(ActionEvent ev)
+ {
+ boolean enabled = enabled1.isSelected();
+ textfield1.setEnabled(enabled);
+ textfield2.setEnabled(enabled);
+ textfield3.setEnabled(enabled);
+ }
+ });
+ statePanel.add(enabled1);
+ final JCheckBox editable1 = new JCheckBox("editable");
+ editable1.setSelected(true);
+ editable1.addActionListener(
+ new ActionListener()
+ {
+ public void actionPerformed(ActionEvent ev)
+ {
+ boolean editable = editable1.isSelected();
+ textfield1.setEditable(editable);
+ textfield2.setEditable(editable);
+ textfield3.setEditable(editable);
+ }
+ });
+ statePanel.add(editable1);
+ statePanel.add(Box.createVerticalGlue());
+ leftAlignedPanel.add(statePanel, BorderLayout.EAST);
+ textFieldPanel.add(leftAlignedPanel);
+ System.err.println(leftAlignedPanel.getPreferredSize());
+ textFieldPanel.add(Box.createVerticalStrut(70));
+ //panel.add(rightAlignedPanel);
+ tabPane.add("TextField", textFieldPanel);
+ setContentPane(tabPane);
+ }
+
+ /**
+ * Starts the demo application.
+ *
+ * @param args the command line arguments (ignored)
+ */
+ public static void main(String[] args)
+ {
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run()
+ {
+ MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme());
+ MiniDemo demo = new MiniDemo();
+ demo.setSize(320, 200);
+ demo.setUndecorated(true);
+ demo.setVisible(true);
+ demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ }
+ });
+ }
+
+}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java
index fce1373..f90ffd4 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/ScrollBarDemo.java
@@ -1,5 +1,5 @@
/* ScrollBarDemo.java -- An example showing scroll bars in Swing.
- Copyright (C) 2005, Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, Free Software Foundation, Inc.
This file is part of GNU Classpath examples.
@@ -40,6 +40,8 @@ public class ScrollBarDemo
implements ActionListener
{
+ private JPanel content;
+
/**
* Creates a new demo instance.
*
@@ -49,6 +51,19 @@ public class ScrollBarDemo
{
super(title);
JPanel content = createContent();
+ // initFrameContent() is only called (from main) when running this app
+ // standalone
+ }
+
+ /**
+ * When the demo is run independently, the frame is displayed, so we should
+ * initialise the content panel (including the demo content and a close
+ * button). But when the demo is run as part of the Swing activity board,
+ * only the demo content panel is used, the frame itself is never displayed,
+ * so we can avoid this step.
+ */
+ public void initFrameContent()
+ {
JPanel closePanel = new JPanel();
JButton closeButton = new JButton("Close");
closeButton.setActionCommand("CLOSE");
@@ -67,9 +82,12 @@ public class ScrollBarDemo
*/
JPanel createContent()
{
- JPanel content = new JPanel(new BorderLayout());
- JPanel panel = createScrollBarPanel();
- content.add(panel);
+ if (content == null)
+ {
+ content = new JPanel(new BorderLayout());
+ JPanel panel = createScrollBarPanel();
+ content.add(panel);
+ }
return content;
}
@@ -134,6 +152,7 @@ public class ScrollBarDemo
public static void main(String[] args)
{
ScrollBarDemo app = new ScrollBarDemo("ScrollBar Demo");
+ app.initFrameContent();
app.pack();
app.setVisible(true);
}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java
index 736024c..2bc5107 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java
@@ -1,5 +1,5 @@
/* SliderDemo.java -- An example showing JSlider in various configurations.
- Copyright (C) 2005, Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, Free Software Foundation, Inc.
This file is part of GNU Classpath examples.
@@ -35,7 +35,9 @@ import javax.swing.JSlider;
public class SliderDemo extends JFrame implements ActionListener
{
-
+
+ private JPanel content;
+
JSlider hslider1;
JSlider hslider2;
JSlider hslider3;
@@ -59,7 +61,20 @@ public class SliderDemo extends JFrame implements ActionListener
public SliderDemo(String frameTitle)
{
super(frameTitle);
- JPanel content = createContent();
+ content = createContent();
+ // initFrameContent() is only called (from main) when running this app
+ // standalone
+ }
+
+ /**
+ * When the demo is run independently, the frame is displayed, so we should
+ * initialise the content panel (including the demo content and a close
+ * button). But when the demo is run as part of the Swing activity board,
+ * only the demo content panel is used, the frame itself is never displayed,
+ * so we can avoid this step.
+ */
+ public void initFrameContent()
+ {
JPanel closePanel = new JPanel();
JButton closeButton = new JButton("Close");
closeButton.setActionCommand("CLOSE");
@@ -78,20 +93,23 @@ public class SliderDemo extends JFrame implements ActionListener
*/
JPanel createContent()
{
- JPanel content = new JPanel(new BorderLayout());
- JPanel panel = new JPanel(new GridLayout(1, 2));
- panel.add(createHorizontalPanel());
- panel.add(createVerticalPanel());
- enabledCheckBox = new JCheckBox("Enabled");
- enabledCheckBox.setSelected(true);
- enabledCheckBox.setActionCommand("TOGGLE_ENABLED");
- enabledCheckBox.addActionListener(this);
- JPanel checkBoxPanel = new JPanel();
- checkBoxPanel.add(enabledCheckBox);
- JPanel panel2 = new JPanel(new BorderLayout());
- panel2.add(panel);
- panel2.add(checkBoxPanel, BorderLayout.SOUTH);
- content.add(panel2);
+ if (content == null)
+ {
+ content = new JPanel(new BorderLayout());
+ JPanel panel = new JPanel(new GridLayout(1, 2));
+ panel.add(createHorizontalPanel());
+ panel.add(createVerticalPanel());
+ enabledCheckBox = new JCheckBox("Enabled");
+ enabledCheckBox.setSelected(true);
+ enabledCheckBox.setActionCommand("TOGGLE_ENABLED");
+ enabledCheckBox.addActionListener(this);
+ JPanel checkBoxPanel = new JPanel();
+ checkBoxPanel.add(enabledCheckBox);
+ JPanel panel2 = new JPanel(new BorderLayout());
+ panel2.add(panel);
+ panel2.add(checkBoxPanel, BorderLayout.SOUTH);
+ content.add(panel2);
+ }
return content;
}
@@ -242,6 +260,7 @@ public class SliderDemo extends JFrame implements ActionListener
public static void main(String[] args)
{
SliderDemo app = new SliderDemo("Slider Demo");
+ app.initFrameContent();
app.pack();
app.setVisible(true);
}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java
new file mode 100644
index 0000000..4a05bc4
--- /dev/null
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java
@@ -0,0 +1,230 @@
+/* SpinnerDemo.java -- An example showing various spinners in Swing.
+ Copyright (C) 2006, Free Software Foundation, Inc.
+
+This file is part of GNU Classpath examples.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+*/
+
+
+package gnu.classpath.examples.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Calendar;
+import java.util.Date;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JSpinner;
+import javax.swing.SpinnerDateModel;
+import javax.swing.SpinnerListModel;
+import javax.swing.SpinnerNumberModel;
+import javax.swing.UIManager;
+import javax.swing.plaf.metal.DefaultMetalTheme;
+import javax.swing.plaf.metal.MetalLookAndFeel;
+
+/**
+ * A simple demo showing various spinners in different states.
+ */
+public class SpinnerDemo
+ extends JFrame
+ implements ActionListener
+{
+ private JPanel content;
+ private JCheckBox spinnerState1;
+ private JSpinner spinner1;
+ private JSpinner spinner2;
+
+ private JCheckBox spinnerState2;
+ private JSpinner spinner3;
+ private JSpinner spinner4;
+
+ private JCheckBox spinnerState3;
+ private JSpinner spinner5;
+ private JSpinner spinner6;
+
+ /**
+ * Creates a new demo instance.
+ *
+ * @param title the frame title.
+ */
+ public SpinnerDemo(String title)
+ {
+ super(title);
+ JPanel content = createContent();
+ // initFrameContent() is only called (from main) when running this app
+ // standalone
+ }
+
+ /**
+ * When the demo is run independently, the frame is displayed, so we should
+ * initialise the content panel (including the demo content and a close
+ * button). But when the demo is run as part of the Swing activity board,
+ * only the demo content panel is used, the frame itself is never displayed,
+ * so we can avoid this step.
+ */
+ public void initFrameContent()
+ {
+ JPanel closePanel = new JPanel();
+ JButton closeButton = new JButton("Close");
+ closeButton.setActionCommand("CLOSE");
+ closeButton.addActionListener(this);
+ closePanel.add(closeButton);
+ content.add(closePanel, BorderLayout.SOUTH);
+ getContentPane().add(content);
+ }
+
+ /**
+ * Returns a panel with the demo content. The panel
+ * uses a BorderLayout(), and the BorderLayout.SOUTH area
+ * is empty, to allow callers to add controls to the
+ * bottom of the panel if they want to (a close button is
+ * added if this demo is being run as a standalone demo).
+ */
+ JPanel createContent()
+ {
+ if (content == null)
+ {
+ content = new JPanel(new BorderLayout());
+ JPanel panel = new JPanel(new GridLayout(3, 1));
+ panel.add(createPanel1());
+ panel.add(createPanel2());
+ panel.add(createPanel3());
+ content.add(panel);
+ }
+ return content;
+ }
+
+ private JPanel createPanel1()
+ {
+ JPanel panel = new JPanel(new BorderLayout());
+ this.spinnerState1 = new JCheckBox("Enabled", true);
+ this.spinnerState1.setActionCommand("COMBO_STATE1");
+ this.spinnerState1.addActionListener(this);
+ panel.add(this.spinnerState1, BorderLayout.EAST);
+
+ JPanel controlPanel = new JPanel();
+ controlPanel.setBorder(BorderFactory.createTitledBorder(
+ "Number Spinner: "));
+ this.spinner1 = new JSpinner(new SpinnerNumberModel(5.0, 0.0, 10.0, 0.5));
+ this.spinner2 = new JSpinner(new SpinnerNumberModel(50, 0, 100, 5));
+ this.spinner2.setFont(new Font("Dialog", Font.PLAIN, 20));
+ controlPanel.add(this.spinner1);
+ controlPanel.add(this.spinner2);
+
+ panel.add(controlPanel);
+
+ return panel;
+ }
+
+ private JPanel createPanel2()
+ {
+ JPanel panel = new JPanel(new BorderLayout());
+ this.spinnerState2 = new JCheckBox("Enabled", true);
+ this.spinnerState2.setActionCommand("COMBO_STATE2");
+ this.spinnerState2.addActionListener(this);
+ panel.add(this.spinnerState2, BorderLayout.EAST);
+
+ JPanel controlPanel = new JPanel();
+ controlPanel.setBorder(BorderFactory.createTitledBorder("Date Spinner: "));
+ this.spinner3 = new JSpinner(new SpinnerDateModel(new Date(), null, null,
+ Calendar.DATE));
+
+ this.spinner4 = new JSpinner(new SpinnerDateModel(new Date(), null, null,
+ Calendar.YEAR));
+ this.spinner4.setFont(new Font("Dialog", Font.PLAIN, 20));
+
+ controlPanel.add(this.spinner3);
+ controlPanel.add(this.spinner4);
+
+ panel.add(controlPanel);
+
+ return panel;
+ }
+
+ private JPanel createPanel3()
+ {
+ JPanel panel = new JPanel(new BorderLayout());
+ this.spinnerState3 = new JCheckBox("Enabled", true);
+ this.spinnerState3.setActionCommand("COMBO_STATE3");
+ this.spinnerState3.addActionListener(this);
+ panel.add(this.spinnerState3, BorderLayout.EAST);
+
+ JPanel controlPanel = new JPanel();
+ controlPanel.setBorder(BorderFactory.createTitledBorder("List Spinner: "));
+ this.spinner5 = new JSpinner(new SpinnerListModel(new Object[] {"Red",
+ "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"}));
+
+ this.spinner6 = new JSpinner(new SpinnerListModel(new Object[] {"Red",
+ "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"}));
+ this.spinner6.setValue("Yellow");
+ this.spinner6.setFont(new Font("Dialog", Font.PLAIN, 20));
+
+ controlPanel.add(this.spinner5);
+ controlPanel.add(this.spinner6);
+
+ panel.add(controlPanel);
+
+ return panel;
+ }
+
+ public void actionPerformed(ActionEvent e)
+ {
+ if (e.getActionCommand().equals("COMBO_STATE1"))
+ {
+ spinner1.setEnabled(spinnerState1.isSelected());
+ spinner2.setEnabled(spinnerState1.isSelected());
+ }
+ else if (e.getActionCommand().equals("COMBO_STATE2"))
+ {
+ spinner3.setEnabled(spinnerState2.isSelected());
+ spinner4.setEnabled(spinnerState2.isSelected());
+ }
+ else if (e.getActionCommand().equals("COMBO_STATE3"))
+ {
+ spinner5.setEnabled(spinnerState3.isSelected());
+ spinner6.setEnabled(spinnerState3.isSelected());
+ }
+ else if (e.getActionCommand().equals("CLOSE"))
+ {
+ System.exit(0);
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ try
+ {
+ MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme());
+ UIManager.setLookAndFeel(new javax.swing.plaf.metal.MetalLookAndFeel());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ SpinnerDemo app = new SpinnerDemo("Spinner Demo");
+ app.initFrameContent();
+ app.pack();
+ app.setVisible(true);
+ }
+
+}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java
new file mode 100644
index 0000000..1fbf2de
--- /dev/null
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java
@@ -0,0 +1,236 @@
+/* TableDemo.java -- Demonstrates the use of JTable.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.classpath.examples.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.table.DefaultTableColumnModel;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableColumn;
+
+/**
+ * Displays the editable table. The first column consists of check boxes.
+ *
+ * @author Audrius Meskauskas (audriusa@bioinformatics.org)
+ */
+public class TableDemo extends JFrame
+{
+ /**
+ * The initial row count for this table.
+ */
+ static int rows = 32;
+
+ /**
+ * The initial column count for this table.
+ */
+ static int cols = 7;
+
+
+ /**
+ * The table model.
+ */
+ class TModel extends DefaultTableModel
+ {
+
+ /**
+ * Return true if the cell is editable. All cells are editable.
+ */
+ public boolean isCellEditable(int parm1, int parm2)
+ {
+ return true;
+ }
+
+ /**
+ * Get the number of the table rows.
+ */
+ public int getRowCount()
+ {
+ return rows;
+ }
+
+ /**
+ * Get the number of the table columns.
+ */
+ public int getColumnCount()
+ {
+ return cols;
+ }
+
+ /**
+ * Set the value at the given position
+ */
+ public void setValueAt(Object aValue, int aRow, int aColumn)
+ {
+ values[aRow][aColumn] = aValue;
+ }
+
+ /**
+ * Get the value at the given position.
+ */
+ public Object getValueAt(int aRow, int aColumn)
+ {
+ return values[aRow][aColumn];
+ }
+
+ /**
+ * The column name, as suggested by model. This header should not be
+ * visible, as it is overridden by setting the header name with
+ * {@link TableColumn#setHeaderValue} in {@link TableDemo#createContent}.
+ */
+ public String getColumnName(int column)
+ {
+ return "Error "+column;
+ }
+
+ /**
+ * The first column contains booleans, others - default class.
+ */
+ public Class getColumnClass(int column)
+ {
+ if (column == 0)
+ return Boolean.class;
+ else
+ return super.getColumnClass(column);
+ }
+ }
+
+ private JPanel content;
+
+ /**
+ * The table being displayed.
+ */
+ JTable table = new JTable();
+
+ /**
+ * The table model.
+ */
+ TModel model = new TModel();
+
+ /**
+ * The table value array.
+ */
+ Object[][] values;
+
+ /**
+ * Create the table demo with the given titel.
+ *
+ * @param title the frame title.
+ */
+ public TableDemo(String title)
+ {
+ super(title);
+ getContentPane().add(createContent(), BorderLayout.CENTER);
+ }
+
+ /**
+ * Returns a panel with the demo content. The panel uses a BorderLayout(), and
+ * the BorderLayout.SOUTH area is empty, to allow callers to add controls to
+ * the bottom of the panel if they want to (a close button is added if this
+ * demo is being run as a standalone demo).
+ */
+ JPanel createContent()
+ {
+ if (content == null)
+ {
+ JPanel p = new JPanel();
+ p.setLayout(new BorderLayout());
+ values = new Object[rows][];
+ for (int i = 0; i < values.length; i++)
+ {
+ values[i] = new Object[cols];
+ for (int j = 1; j < cols; j++)
+ {
+ values[i][j] = "" + ((char) ('a' + j)) + i;
+ }
+ values [i][0] = i % 2 == 0? Boolean.TRUE : Boolean.FALSE;
+ }
+
+ table.setModel(model);
+
+ // Make the columns with gradually increasing width:
+ DefaultTableColumnModel cm = new DefaultTableColumnModel();
+ for (int i = 0; i < cols; i++)
+ {
+ TableColumn column = new TableColumn(i);
+
+ // Showing the variable width columns.
+ int width = 100+20*i;
+ column.setPreferredWidth(width);
+
+ // If we do not set the header value here, the value, returned
+ // by model, is used.
+ column.setHeaderValue("Width +"+(20*i));
+
+ cm.addColumn(column);
+ }
+
+ table.setColumnModel(cm);
+
+ // Create the table, place it into scroll pane and place
+ // the pane into this frame.
+ JScrollPane scroll = new JScrollPane();
+
+ // The horizontal scroll bar is never needed.
+ scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ scroll.getViewport().add(table);
+ p.add(scroll, BorderLayout.CENTER);
+ content = p;
+ }
+ return content;
+ }
+
+ /**
+ * The executable method to display the editable table.
+ *
+ * @param args
+ * unused.
+ */
+ public static void main(String[] args)
+ {
+ TableDemo frame = new TableDemo("Table double click on the cell to edit.");
+ frame.setSize(new Dimension(640, 100));
+ frame.validate();
+ frame.setVisible(true);
+ }
+}
diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java
index 5ddf116..6eda469 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java
@@ -1,5 +1,5 @@
/* TextFieldDemo.java -- An example showing various textfields in Swing.
- Copyright (C) 2005, Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, Free Software Foundation, Inc.
This file is part of GNU Classpath examples.
@@ -107,6 +107,8 @@ public class TextFieldDemo
}
}
+ private JPanel content;
+
/**
* The left aligned textfields and state buttons.
*/
@@ -115,7 +117,7 @@ public class TextFieldDemo
JTextField textfield3;
JCheckBox enabled1;
JCheckBox editable1;
-JPanel textFieldPanel1;
+ JPanel textFieldPanel1;
/**
* The right aligned textfields and state buttons.
*/
@@ -162,6 +164,19 @@ JPanel textFieldPanel1;
{
super(title);
JPanel content = createContent();
+ // initFrameContent() is only called (from main) when running this app
+ // standalone
+ }
+
+ /**
+ * When the demo is run independently, the frame is displayed, so we should
+ * initialise the content panel (including the demo content and a close
+ * button). But when the demo is run as part of the Swing activity board,
+ * only the demo content panel is used, the frame itself is never displayed,
+ * so we can avoid this step.
+ */
+ public void initFrameContent()
+ {
JPanel closePanel = new JPanel();
JButton closeButton = new JButton("Close");
closeButton.setActionCommand("CLOSE");
@@ -180,15 +195,18 @@ JPanel textFieldPanel1;
*/
JPanel createContent()
{
- JPanel content = new JPanel(new BorderLayout());
- JPanel panel = new JPanel(new GridLayout(5, 1));
- panel.add(createLeftAlignedPanel());
- panel.add(createRightAlignedPanel());
- panel.add(createCenteredPanel());
- panel.add(createCustomColoredPanel());
- panel.add(createMiscPanel());
- content.add(panel);
- //content.setPreferredSize(new Dimension(400, 300));
+ if (content == null)
+ {
+ content = new JPanel(new BorderLayout());
+ JPanel panel = new JPanel(new GridLayout(5, 1));
+ panel.add(createLeftAlignedPanel());
+ panel.add(createRightAlignedPanel());
+ panel.add(createCenteredPanel());
+ panel.add(createCustomColoredPanel());
+ panel.add(createMiscPanel());
+ content.add(panel);
+ //content.setPreferredSize(new Dimension(400, 300));
+ }
return content;
}
@@ -481,6 +499,7 @@ JPanel textFieldPanel1;
public static void main(String[] args)
{
TextFieldDemo app = new TextFieldDemo("TextField Demo");
+ app.initFrameContent();
app.pack();
app.setVisible(true);
}