jan@newmarch.nameIt makes the following assumptions:
main() in a subclass of Frame
init()
start()
stop()
Label lab1 = new Label();
Label lab2 = new Label("Hello World");
Label lab3 = new Label("Hello",
Label.RIGHT);
label.setVisible(false); if (label.isShowing()) ...
label.setText("Hello");
label.setAlignment(Label.LEFT);
String s = label.getText();
import java.awt.*;
public class Hello extends Frame {
public static void main(String argv[])
{
new Hello();
}
Hello() {
Label hello =
new Label("Hello World");
add(hello, "Center");
setSize(200, 200);
setVisible(true);
}
}
Frame(); Frame(String title);
setIconImage(Image) setMenuBar(MenuBar) setTitle(String)(setCursor() has been moved to Component)
import com.sun.java.swing.*;
public class JHello extends JFrame {
public static void main(String argv[])
{
new JHello();
}
public JHello() {
JLabel hello =
new JLabel("Hello World");
getContentPane().add(hello, "Center");
setSize(200, 200);
setVisible(true);
}
}
getClickCount() is available to distinguish between double clicks on mouse events
Button btn1 = new Button();
Button btn2 = new Button("Hello");
btn1.setLabel("Hi");
String s = btn1.getLabel();
Event
AWTEvent
id value to distinguish between them
public interface ActionListener
extends EventListener {
public void actionPerformed(ActionEvent e);
}
public interface MouseListener
extends EventListener {
public void mouseClicked(MouseEvent e);
public void mousePressed(MouseEvent e);
public void mouseReleased(MouseEvent e);
public void mouseEntered(MouseEvent e);
public void mouseExited(MouseEvent e);
}
addActionListener()
addItemListener()
import java.awt.Button;
import java.awt.Label;
import java.awt.Frame;
import java.awt.event.ActionListener;
public class DelegateDemo extends Frame {
public static void main(String argv[]) {
new DelegateDemo().setVisible(true);
}
public DelegateDemo() {
// create the GUI objects
Button left = new Button("Left");
Button right = new Button("Right");
Label label = new Label(" ", Label.CENTER);
// set their geometry
add(left, "West");
add(right, "East");
add(label, "Center");
pack();
// create a listener and add it to each Button
SimpleListener simple =
new SimpleListener(label);
left.addActionListener(simple);
right.addActionListener(simple);
}
}
/**
* A listener object that is invoked when a Button is activated
* It finds the Button's label and sets it in a Label
*/
class SimpleListener implements ActionListener {
private Label label;
public SimpleListener(Label l) {
// the listener needs to know the Label it will act on
label = l;
}
public void actionPerformed(java.awt.event.ActionEvent e) {
// get the label showing in whichever Button was pressed
String name = e.getActionCommand();
// set this in the Label object
label.setText(name);
}
}
public void componentResized(ComponentEvent e); public void componentMoved(ComponentEvent e); public void componentShown(ComponentEvent e); public void componentHidden(ComponentEvent e);
import java.awt.*;
public class TrackResize extends Frame {
public static void main(String argv[]) {
new TrackResize().setVisible(true);
}
public TrackResize() {
Label label = new Label();
add(label);
setSize(300, 100);
addComponentListener(new Tracker(label));
}
}
class Tracker implements ComponentListener {
private Label label;
Tracker(Label l) {
label = l;
}
public void componentHidden(ComponentEvent e) {
// empty
}
public void componentMoved(ComponentEvent e) {
showGeometry(e);
}
public void componentResized(ComponentEvent e) {
showGeometry(e);
}
// Tracker continues
public void componentShown(ComponentEvent e) {
// empty
}
private void showGeometry(ComponentEvent e) {
Component c = e.getComponent();
Dimension d = c.getSize();
Point p = c.getLocation();
label.setText("Position: (" + p.x +
"," + p.y + ") Size: )" +
d.width + "," + d.height + ")");
}
}
import java.awt.*;
import java.awt.event.*;
public class MapKey extends Frame {
public static void main(String argv[]) {
new MapKey().setVisible(true);
}
public MapKey() {
TextField text = new TextField(20);
add(text);
pack();
text.addKeyListener(new ToUpper());
}
}
class ToUpper implements KeyListener {
public void keyTyped(KeyEvent e) {
// empty
}
public void keyPressed(KeyEvent e) {
e.setModifiers(Event.SHIFT_MASK);
}
public void keyReleased(KeyEvent e) {
// empty
}
}
AWTEvent.consume()
public class Alpha implements KeyListener {
public void keyPressed(KeyEvent e) {
if (! Character.isLetter(e.getKeyChar())) {
Toolkit.getDefaultToolkit().beep();
e.consume();
}
}
public void keyReleased(KeyEvent e) {
// empty
}
public void keyTyped(KeyEvent e) {
// empty
}
}
Toolkit.getDefaultToolkit().getSystemEventQueue()
AWTEvent
id field must be greater than
AWTEvent.RESERVED_MAX_ID or event handling breaks
Component must be defined to handle the new event type
enableEvents(0)
FileDialog(Frame parent, String title);
FileDialog(Frame parent, String title,
int mode);
setDirectory(String) // sets dirMask setFile(String) setFilenameFilter(FilenameFilter) - still does nothing
setVisible(true) is modal. When it terminates the file selected can be
found
FileDialog fd = new FileDialog();
fd.setVisible(true);
System.out.println("Selected: " +
fd.getFile());
class FileOpen implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object fr = e.getSource();
while (fr != null &&
!(fr instanceof Frame))
fr = ((Component)
fr).getParent();
new FileDialog((Frame) fr, "Open");
// etc
}
}