Widgets
File: java/Widgets/Main.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Main extends JFrame {
public static void main (String [] args) {
new Main();
}
public Main () {
// Window setup
setLocation (100, 100);
setSize (300, 300);
Container content = getContentPane();
content.setLayout (new FlowLayout());
// Make various widgets and add them
MyButton b1 = new MyButton ("Push me");
content.add (b1);
MyButton b2 = new MyButton ("Push me too");
content.add (b2);
MyComboBox c1 = new MyComboBox ();
content.add (c1);
MyList l1 = new MyList ();
content.add (l1);
MyRadio r1 = new MyRadio ();
content.add (r1);
MyScrollBar s1 = new MyScrollBar ();
content.add (s1);
MyTextField t1 = new MyTextField ();
content.add (t1);
// This button reports the data from several other widgets
MyGetButton b = new MyGetButton (c1, l1, s1);
content.add (b);
// A label widget, no interaction
JLabel label = new JLabel ("This is a label");
content.add (label);
// Finally, put our window on the screen
setVisible (true);
}
}
File: java/Widgets/MyButton.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class MyButton extends JButton implements ActionListener {
public MyButton (String label) {
setText (label);
setFont (new Font("Serif", Font.ITALIC, 18));
setBackground (Color.yellow);
setForeground (Color.red);
setBorder (new LineBorder(Color.green, 2));
addActionListener (this);
}
public void actionPerformed (ActionEvent e) {
System.out.println (getText() + " Button was pushed");
}
}
File: java/Widgets/MyComboBox.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class MyComboBox extends JComboBox implements ItemListener {
public MyComboBox () {
addItem ("one");
addItem ("two");
addItem ("three");
addItem ("four");
setSelectedItem ("three"); // initial
addItemListener (this);
}
public void itemStateChanged (ItemEvent e) {
if (e.getStateChange()==ItemEvent.SELECTED) {
System.out.println ("Combo: " + e.getItem());
}
}
}
File: java/Widgets/MyList.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class MyList extends JList implements ListSelectionListener {
public MyList () {
String[] items = {"un", "deux", "trois", "quatre"};
setListData (items);
setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
addListSelectionListener (this);
}
public void valueChanged (ListSelectionEvent e) {
if (! e.getValueIsAdjusting()) {
System.out.println ("List: " + getSelectedValue());
}
}
}
File: java/Widgets/MyRadio.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class MyRadio extends JPanel implements ItemListener {
public MyRadio () {
// Border around our JPanel
setBorder (new LineBorder(Color.blue, 1));
// ButtonGroup makes them behave as radio buttons
ButtonGroup g = new ButtonGroup ();
JCheckBox cb = new JCheckBox ("I", false);
add (cb);
g.add (cb);
cb.addItemListener (this);
cb = new JCheckBox ("II", true);
add (cb);
g.add (cb);
cb.addItemListener (this);
cb = new JCheckBox ("III", false);
add (cb);
g.add (cb);
cb.addItemListener (this);
cb = new JCheckBox ("IV", false);
add (cb);
g.add (cb);
cb.addItemListener (this);
}
public void itemStateChanged (ItemEvent e) {
if (e.getStateChange()==ItemEvent.SELECTED) {
System.out.println ("Radio: " + ((JCheckBox)e.getItem()).getText());
}
}
}
File: java/Widgets/MyScrollBar.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class MyScrollBar extends JScrollBar implements AdjustmentListener {
public MyScrollBar () {
setOrientation (HORIZONTAL);
addAdjustmentListener (this);
}
public void adjustmentValueChanged (AdjustmentEvent event) {
System.out.println ("Scrollbar: " + getValue());
}
}
File: java/Widgets/MyTextField.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class MyTextField extends JTextField implements ActionListener {
public MyTextField () {
super ("Initial value", 20);
addActionListener (this);
}
public void actionPerformed (ActionEvent e) {
System.out.println ("Text: " + e.getActionCommand());
}
}
File: java/Widgets/MyGetButton.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class MyGetButton extends JButton implements ActionListener {
private MyComboBox c;
private MyList l;
private MyScrollBar s;
public MyGetButton (MyComboBox c, MyList l, MyScrollBar s) {
this.c = c;
this.l = l;
this.s = s;
setText ("Get Data");
addActionListener (this);
}
public void actionPerformed (ActionEvent e) {
System.out.println ("Values: " + c.getSelectedItem() +
", " + l.getSelectedValue() +
", " + s.getValue());
}
}