aboutframe.java

来自「windows的蜘蛛纸牌游戏源代码」· Java 代码 · 共 93 行

JAVA
93
字号
// Frame: display a "about" window
package spider.araneid;

import javax.swing.*;
import java.awt.*;

public class AboutFrame extends JFrame
{
	/**
	 * 
	 */
	private static final long serialVersionUID = -1892958350888158981L;

	public AboutFrame(String version) 
	{
		super("About Araneid Game");
		setSize(400,200);
		setResizable(false);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                Pane pane = new Pane(version);
		getContentPane().setBackground(Color.white);
		getContentPane().setLayout(new BorderLayout());
		getContentPane().add(pane,"Center");
		this.setVisible(true);
	}
}

class Pane extends JPanel implements Runnable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 4983977838685728178L;
	private Image title;
	private Thread runner;
	private int y;
	private String[] msg;

	public Pane(String version) {
		Toolkit tk = (Toolkit)Toolkit.getDefaultToolkit();
		title = (Image)tk.getImage("images/title.gif");
		this.msg = new String[] {
			"Java 蜘蛛纸牌游戏 " +version,
			"",
			"该软件纸牌图片来自于 Windows XP 纸牌",
			"游戏中,图片权属于原作者所有。",
			"",
			"该软件仅供 Java 程序员研究使用,不能",
			"用于任何商业应用。"
		};
		this.y=msg.length*20-80;

		if (this.runner==null) {
			this.runner=new Thread(this);
			this.runner.start();
		}
	}
	public void paintComponent(Graphics g) 
	{
		Graphics2D comp = (Graphics2D)g;
		comp.setColor(Color.white);
		comp.fillRect(0,0,this.getWidth(),this.getHeight());
		comp.setFont(new Font("宋体",0,12));

		// draw the shadow of message
		for (int m=0;m<3;m++) {
			int k=255-(m*100)/2;
			comp.setColor(new Color(k,k,k));
			for (int i=0;i<msg.length;i++) {
				comp.drawString(msg[i],135-m,y+5+i*20-m);
			}
		}

		// draw the title image
		comp.drawImage(title,0,this.getHeight() - this.title.getHeight(this),this);

		// draw the message
		comp.setColor(Color.black);
		for (int i=0;i<msg.length;i++) {
			comp.drawString(msg[i],130,y+i*20);
		}
	}

	// method: move the message
	public void run() {
		try {
			while(true) {
				Thread.sleep(200);
				if (--y < - msg.length*20) y=this.getHeight()+20;
				repaint();
			}
		} catch (InterruptedException ignore) {}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?