KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gnu > kawa > swingviews > SwingFrame


1 package gnu.kawa.swingviews;
2 import gnu.kawa.models.*;
3 import java.awt.Component JavaDoc;
4 import java.awt.Container JavaDoc;
5 import javax.swing.*;
6 import gnu.lists.*;
7
8 public class SwingFrame extends JFrame
9 implements gnu.kawa.models.Window
10 {
11   SwingDisplay display;
12
13   public Display getDisplay () { return display; }
14
15   public SwingFrame (String JavaDoc title,
16              javax.swing.JMenuBar JavaDoc menubar,
17              Object JavaDoc contents)
18   {
19     JFrame fr = this;
20     if (title != null)
21       fr.setTitle(title);
22     if (menubar != null)
23       fr.setJMenuBar(menubar);
24     Container JavaDoc pane = getContentPane();
25     pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
26     addComponent(contents);
27   }
28
29   public void setContent (Object JavaDoc content)
30   {
31     setContentPane(new JPanel());
32     addComponent(content);
33     pack();
34   }
35
36   public void setMenuBar (Object JavaDoc menubar)
37   {
38     setJMenuBar((javax.swing.JMenuBar JavaDoc) menubar);
39   }
40
41   public void addComponent (Object JavaDoc contents)
42   {
43     if (contents instanceof gnu.lists.FString || contents instanceof String JavaDoc)
44       getContentPane().add(new JLabel(contents.toString()));
45     else if (contents instanceof AbstractSequence)
46       {
47     AbstractSequence seq = (AbstractSequence) contents;
48     for (int iter = seq.startPos(); (iter = seq.nextPos(iter)) != 0; )
49       addComponent(seq.getPosPrevious(iter));
50       }
51     else if (contents instanceof Viewable)
52       ((Viewable) contents).makeView(getDisplay(), getContentPane());
53     else if (contents instanceof Paintable)
54       getContentPane().add(new SwingPaintable((Paintable) contents));
55     else if (contents != null)
56       getContentPane().add((Component JavaDoc) contents);
57   }
58
59   public void open ()
60   {
61     pack();
62     setVisible(true);
63   }
64 }
65
Popular Tags