Pada contoh berikut ini class yang digunakan tidak hanya Frame, tetapi juga class Panel,
Button, Rectangle, Graphics dan beberapa interface seperti interface ActionListener dan
MouseMotionListener.
coding :
import java.awt.*;
import java.awt.event.*;
public class Scribble extends Frame
implements ActionListener, MouseMotionListener
{
private final int WIDTH = 600;
private final int HEIGHT = 300;
private int lastX = 0, lastY = 0;
private int x = 0, y = 0;
public Scribble() // Constructor
{
setSize(WIDTH, HEIGHT);
setTitle("Pelatihan Java AWT Lanjutan");
setBackground(Color.cyan);
setLayout(new BorderLayout());
Panel control = new Panel();
control.setLayout(new FlowLayout());
control.setBackground(Color.gray);
Button clear = new Button("Clear");
Button exit = new Button("Exit");
clear.addActionListener(this);
exit.addActionListener(this);
control.add(clear);
control.add(exit);
add("South",control);
addMouseMotionListener(this);
}
// Dibuat karena class ini meng-implements interface
// ActionListener
public void actionPerformed(ActionEvent e)
{
Rectangle r = getBounds();
Graphics g = getGraphics();
if(e.getActionCommand().equals("Clear"))
{
g.setColor(getBackground());
g.fillRect(0, 0, r.width, r.height);
}
else if(e.getActionCommand().equals("Exit"))
{
System.exit(0);
}
}
// Dibuat karena class ini implements interface
// MouseMotionListener
public void mouseMoved(MouseEvent e)
{
lastX = e.getX();
lastY = e.getY();
}
public void mouseDragged(MouseEvent e)
{
Graphics g = getGraphics();
x = e.getX();
y = e.getY();
g.drawLine(lastX, lastY, x, y);
lastX = x;
lastY = y;
}
// Tuliskan method main untuk menjalankan program
public static void main(String args[])
{
Scribble scrib = new Scribble();
scrib.setVisible(true);
}
}
Bila program ini dijalankan anda akan melihat gambar sebagai berikut:
Jika tombol Clear ditekan maka tampilan akan menjadi: