myapplet.java
来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 164 行
JAVA
164 行
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
public class MyApplet extends Applet implements Runnable
{
public final int BUTTON_1 = 0x10;
public final int BUTTON_2 = 0x20;
public final int GAMEPAD_AXIS_X = 1;
public final int GAMEPAD_AXIS_Y = 2;
private GamepadTest test;
private Rectangle box;
private final int BOX_SIZE = 40;
private final int DX = 5;
private final int DY = 5;
private Random random;
private Color boxColor;
private Color bgColor;
private Thread gamepadListener;
public MyApplet(GamepadTest gpt)
{
test = gpt;
}
public void init()
{
//gamepad_calibrate();
box = new Rectangle(100-(BOX_SIZE/2),
100-(BOX_SIZE/2),
BOX_SIZE, BOX_SIZE);
random = new Random();
boxColor = new Color(random.nextInt());
bgColor = new Color(random.nextInt());
}
public void start()
{
gamepadListener = new Thread(this);
gamepadListener.start();
}
public void stop()
{
gamepadListener = null;
}
public void run()
{
boolean updateEvent;
Thread t = Thread.currentThread();
while(gamepadListener == t)
{
updateEvent = false;
if(test.gamepadButtonPressed(BUTTON_1) != 0)
{
boxColor = new Color(random.nextInt());
updateEvent = true;
}
if(test.gamepad_button_pressed(BUTTON_2) != 0)
{
bgColor = new Color(random.nextInt());
updateEvent = true;
}
int x = test.gamepad_axis(GAMEPAD_AXIS_X);
if(x < 0)
{
moveBox(GAMEPAD_AXIS_X, -DX);
updateEvent = true;
}
else if(x > 0)
{
moveBox(GAMEPAD_AXIS_X, DX);
updateEvent = true;
}
int y = test.gamepad_axis(GAMEPAD_AXIS_Y);
if(y < 0)
{
moveBox(GAMEPAD_AXIS_Y, -DY);
updateEvent = true;
}
else if(y > 0)
{
moveBox(GAMEPAD_AXIS_Y, DY);
updateEvent = true;
}
if(updateEvent)
{
repaint();
}
try
{
Thread.sleep(10);
}
catch(InterruptedException e)
{
break;
}
}
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
g2d.setColor(bgColor);
g2d.fillRect(0, 0, 200, 200);
g2d.setColor(boxColor);
g2d.fill(box);
}
private void moveBox(int axis, int amount)
{
if(axis == GAMEPAD_AXIS_X)
{
if(amount < 0)
{
if(box.getX() + amount < 0)
{
box.setRect(0, box.getY(), BOX_SIZE, BOX_SIZE);
}
else
{
box.setRect(box.getX() + amount, box.getY(), BOX_SIZE, BOX_SIZE);
}
}
else if(amount > 0)
{
if(box.getX() + amount > getSize().getWidth())
{
box.setRect(getSize().getWidth() - getSize().getWidth(), box.getY(),
BOX_SIZE, BOX_SIZE);
}
else
{
box.setRect(box.getX() + amount, box.getY(), BOX_SIZE, BOX_SIZE);
}
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?