【Java开源代码栏目提醒】:本文主要为网学会员提供CharacterBuilder.java,希望对需要CharacterBuilder.java网友有所帮助,学习一下!
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
// CharacterBuilder 类包含几个放在一个CardLayout中的Panel,还有"back"和
// "next"按钮
public class CharacterBuilder extends Applet implements ActionListener
{
// 在cardPanel中选择下一个和上一个按钮
private Button back;
private Button next;
private Panel attributePanel;
private SummaryPanel summaryPanel;
// 描述不同属性选项的常数String
private final String[] GENDERS = new String[] { "Male", "Female" };
private final String[] SKILLS = new String[]
{ "Strength", "Wisdom", "Agility", "Magic" };
private final String[] PROFESSIONS = new String[]
{ "Knight", "Ranger", "Archer", "Wizard", "Smith", "Druid" };
// 覆盖Applet类的 init 方法
public void init()
{
// 创建一个GridLayout来容纳我们的卡片和按钮
setLayout(new GridLayout(2, 1));
// 得到给角色分配的技能点数
int skillPoints;
try
{
skillPoints = Integer.parseInt(getParameter("SkillPoints"));
}
catch(NumberFormatException e)
{
skillPoints = 10;
}
// 创建一组属性面板; 其中一个是角色的,
// 性别, 技能, 和职业
AttributePanel[] panels = new AttributePanel[] {
new TextFieldPanel("Name", "Enter your name: ", 20),
new CheckboxPanel("Gender", GENDERS, GENDERS[0]),
new SkillPanel("Skills", SKILLS, skillPoints),
new CheckboxPanel("Profession", PROFESSIONS, PROFESSIONS[0])
};
// 创建一个 Panel来放置我们的CardLayout
attributePanel = new Panel();
attributePanel.setLayout(new CardLayout());
// 把AttributePanels 添加到主面板
for(int i = 0; i < panels.length; i++)
{
attributePanel.add(panels[i], panels[i].getAttribute());
}
// 创建 SummaryPanel,并把它加到 CardLayout中
summaryPanel = new SummaryPanel(panels);
attributePanel.add(summaryPanel, "Summary");
// 添加 attributePanel
add(attributePanel);
// 创建并添加 "back" 和 "next" 按钮
Panel p = new Panel();
back = new Button("back");
back.addActionListener(this);
p.add(back);
next = new Button("next");
next.addActionListener(this);
p.add(next);
p.setBackground(Color.BLACK);
add(p);
}
// 在点击 "back" 或者 "next" 按钮时调用
public void actionPerformed(ActionEvent e)
{
CardLayout cardLayout = (CardLayout)attributePanel.getLayout();
if(e.getSource() == back)
{
cardLayout.previous(attributePanel);
}
else if(e.getSource() == next)
{
cardLayout.next(attributePanel);
}
// 在每一次变更后更新概要
summaryPanel.update();
}
} // CharacterBuilder
上一篇:
ChapterBean.java
下一篇:
月入5000,你有什么资格谈生活