This applet can be run as an application also.
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
/**
*
*/
public class ButtonBall extends JApplet implements KeyListener {
private boolean isStandalone = false;
public final static int STEP=5;
public final static Dimension DIM=new Dimension(20,20);
private Point p=null;
//Construct the applet
public ButtonBall() {
}
//Initialize the applet
public void init() {
try {
jbInit();
addKeyListener(this);
p=new Point(getWidth()/2 - DIM.width/2,
getHeight()/2 - DIM.height/2);
}
catch(Exception e) {
e.printStackTrace();
}
}
/**
* Get focus here to catch the key events
*/
public void start() {
requestFocus();
}
//Component initialization
private void jbInit() throws Exception {
this.setSize(new Dimension(400,300));
}
public void paint (Graphics g) {
Color c=g.getColor();
g.setColor(Color.WHITE);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(Color.black);
g.drawString("("+p.x+","+p.y+")",10,15);
g.setColor(Color.RED);
g.fillOval(p.x,p.y,DIM.width, DIM.height);
g.setColor(c);
}
//Main method
public static void main(String[] args) {
ButtonBall applet = new ButtonBall();
applet.isStandalone = true;
JFrame frame = new JFrame();
//EXIT_ON_CLOSE == 3
frame.setDefaultCloseOperation(3);
frame.setTitle("ButtonBall");
frame.getContentPane().add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(400,320);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
}
/**
* Handle keypressed
* @param e
*/
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_LEFT:
p.x -= STEP;
repaint();
break;
case KeyEvent.VK_RIGHT:
p.x += STEP;
repaint();
break;
case KeyEvent.VK_UP:
p.y -= STEP;
repaint();
break;
case KeyEvent.VK_DOWN:
p.y += STEP;
repaint();
break;
}
}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
}
Bookmarks