📄 aboutframe.java
字号:
// Frame: display a "about" window
package dujid.araneid;
import javax.swing.*;
import java.awt.*;
public class AboutFrame extends JFrame{
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");
show();
}
}
class Pane extends JPanel implements Runnable {
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,
"",
"程序设计:Dujid <ronyou@baoji.gov.cn>",
"完成日期:2002 年 11 月",
"",
"“该游戏特别送给我亲爱的女友「粥粥」,",
"并且感谢她无数次的帮我测试提议。”",
"",
"该软件纸牌图片来自于 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(100);
if (--y < - msg.length*20) y=this.getHeight()+20;
repaint();
}
} catch (InterruptedException ignore) {}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -