button2dtest.java
来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 108 行
JAVA
108 行
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Button2DTest extends Applet implements Runnable, ActionListener
{
// 动画线程
private Thread animation;
private BufferedGraphics offscreen;
// 要绘制的Button2D对象数组
private Button2D[] buttons;
// 用来绘制的字体名数组
private final String[] fonts = {"Helvetica", "Arial", "Courier", "Terminal", "Georgia"};
private final int NUM_BUTTONS = fonts.length;
public void init()
{
// 创建ButtonImageGroup供按钮使用
ButtonImageGroup group = new ButtonImageGroup(3, "buttons.gif");
group.init(this);
// 创建实际的按钮
buttons = new Button2D[NUM_BUTTONS];
for(int i = 0; i < NUM_BUTTONS; i++)
{
// 创建一个描述所用字体的标签
Label2D label = new Label2D(new Font(fonts[i], Font.PLAIN, 18), fonts[i], Color.BLACK);
// 创建按钮并让标签居中
buttons[i] = new Button2D(label, group, new Vector2D.Double(50, 10+(i*55)));
label.centerOn(buttons[i].getBounds(), (Graphics2D) getGraphics());
// 注册按钮来接收鼠标事件
addMouseListener(buttons[i]);
addMouseMotionListener(buttons[i]);
// 让按钮知道applet想从它接收动作事件
buttons[i].addActionListener(this);
}
offscreen = new BufferedGraphics(this);
AnimationStrip.observer = this;
} // init
public void start()
{
// 启动动画线程
animation = new Thread(this);
animation.start();
}
public void stop()
{
animation = null;
}
public void run()
{
Thread t = Thread.currentThread();
while (t == animation)
{
repaint();
try
{
Thread.sleep(10);
}
catch(InterruptedException e)
{
break;
}
}
} // run
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
Graphics2D bg = (Graphics2D)offscreen.getValidGraphics();
bg.setPaint(Color.BLUE.darker());
bg.fillRect(0, 0, getSize().width, getSize().height);
// 绘制按钮
for(int i = 0; i < NUM_BUTTONS; i++)
{
buttons[i].paint(bg);
}
g.drawImage(offscreen.getBuffer(), 0, 0, this);
} // paint
// 如果有动作从Button2D对象发出,只是把事件打印到控制台
public void actionPerformed(ActionEvent e)
{
System.out.println(e);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?