List of common Components
Lets walk through Sun's example.
public class ComponentTest extends Applet { Panel center;The following code does
public void init() { setBackground(Color.lightGray); setFont(new Font("Helvetica", Font.PLAIN, 12)); setLayout(new BorderLayout()); Label l = new Label("North"); l.setAlignment(Label.CENTER);
add("South", new TextField("South")); add("North", l); center = new ScrollPanel(); center.setLayout(new BorderLayout()); add("Center", center);
Panel innerPanel = new ScrollPanel(); center.add("Center", innerPanel); innerPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); innerPanel.add(new Label("List of Widgets")); innerPanel.add(new Button("Arthur")); innerPanel.add(new Button("Sami")); innerPanel.add(new SillyWidget()); innerPanel.add(new TextField("quite random")); innerPanel.add(new Scrollbar(Scrollbar.VERTICAL)); innerPanel.add(new Scrollbar(Scrollbar.HORIZONTAL));
List li = new List(4, false); li.reshape(0, 0, 100, 100); li.addItem("Arthur"); li.addItem("Sami"); li.addItem("James"); li.addItem("Chris"); li.addItem("Mary"); li.addItem("Lisa"); li.addItem("Kathy"); li.select(1);
innerPanel.add(li); TextArea tx = new TextArea(10, 5); tx.setText("this is some random text"); tx.setForeground(Color.red); innerPanel.add(tx);
Choice opt = new Choice(); opt.addItem("Arthur"); opt.addItem("Sami"); opt.addItem("Chris"); opt.addItem("Jim"); innerPanel.add(opt);
CheckboxGroup g = new CheckboxGroup(); innerPanel.add(new Checkbox("one", g, false)); innerPanel.add(new Checkbox("two", g, true)); innerPanel.add(new Checkbox("three", g, false)); center.add("East", new Scrollbar(Scrollbar.VERTICAL)); center.add("South", new Scrollbar(Scrollbar.HORIZONTAL)); add("East", new Button("East")); add("West", new Button("West")); }
public synchronized boolean handleEvent(Event e) { return false; } }Definition of the ScrollPanel used above
class ScrollPanel extends Panel { public ScrollPanel() { reshape(0, 0, 100, 100); } // Overriden paint method that draws a rectange around the panel public void paint(Graphics g) { Rectangle r = bounds(); g.drawRect(0, 0, r.width, r.height); } }
The SillyWidget should look like this:
class SillyWidget extends Canvas { Color c1 = Color.pink; Color c2 = Color.lightGray; long entered = 0; long inComponent = 0; Font font = new Font("Courier", Font.BOLD, 12); FontMetrics fm; public SillyWidget() { reshape(0, 0, 100, 100); } // Called when the mouse enters the Canvas // This widget is just change the colors and forcing a repaint when the // mouse enters public boolean mouseEnter(Event e, int x, int y) { Color c = c1; entered = e.when; c1 = c2; c2 = c; repaint(); return true; } // Called when the mouse exits the Canvas // This widget is just change the colors and forcing a repaint when the // mouse exits public boolean mouseExit(Event e, int x, int y) { Color c = c1; inComponent = e.when - entered; c1 = c2; c2 = c; repaint(); return true; } // Called when the Canvas needs repaint and merely draws a bunch of rectangles public void paint(Graphics g) { Rectangle r = bounds(); g.setColor(c1); g.fillRoundRect(0, 0, r.width, r.height, 20, 20); g.setColor(c2); g.fillRoundRect(5, 5, r.width - 10, r.height - 10, 20, 20); g.setColor(c1); g.fillRoundRect(15, 15, r.width - 30, r.height - 30, 20, 20); g.setColor(Color.darkGray); g.setFont(font); fm = g.getFontMetrics(font); String s = ""+inComponent+" ms."; int width = fm.stringWidth(s); System.out.println("width = " + width); g.drawString(s, (r.width - width) / 2, (r.height - fm.getHeight()) / 2); } }
Q: Where can I find documentation and usage of Containers/Components?
A: You can find it here. You can also look through the example programs in the src/java/awt/test directory.Q: Can I find a quick and dirty list of constructors for them?
A: Here is a quick list:
Components:
- Button()
- Button(String label)
- Canvas()
- Checkbox()
- Checkbox(String label)
- Checkbox(String label, CheckboxGroup group, boolean state)
- Choice()
- Label()
- Label(String label )
- Label(String label, int alignment)
- List()
- List(int numOfLines, boolean allowMultipleSelect)
- Scrollbar()
- Scrollbar(int orientation)
- Scrollbar(int orientation, int value, int visible, int minimum,int maximum)
- TextArea()
- TextArea(int rows, int cols)
- TextArea(String text)
- TextArea(String text, int rows, int cols)
Containers:
- TextField()
- TextField(int cols)
- TextField(String text)
- TextField(String text, int cols)
- Dialog(Frame parent, boolean isModal)
- Dialog(Frame parent, String title, boolean isModal)
- Panel()
- Frame()
- Frame(String title)
- Window(Frame parent)