|
分類:[Java]
2008/03/15(Sat) 14:14:29 編集(投稿者)
現在JAVAを使って、RPGなどにあるユーザーに任意で「賢さ・つよさ・すばやさ」などのステータスを振り分けてもらうプログラムを作っております。 すこし長くなってしまうのですが以下にそのプログラムを載せます。
import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel;
public class MyCharacter2 extends JApplet implements ActionListener { private final String Skills[] = {"Widthdom", "Strength","Agility" ,"Magic"}; //スキルの名前かしこさ・つよさ・すばやさ・マジックの順 private JLabel[] labels = new JLabel[Skills.length]; private JPanel[] panels = new JPanel[Skills.length]; private JButton[] minusButtons = new JButton[Skills.length]; private JButton[] plusButtons = new JButton[Skills.length]; JLabel title; JLabel label; int[] intPoint = new int[5]; JPanel mainPanel; JLabel pointRemaining; public void init() { String strSkillPoint; strSkillPoint = getParameter("StrSkillPoint"); mainPanel = new JPanel(); mainPanel.setLayout(null); for (int a = 0 ; a <Skills.length; a++) { int n=80*a; panels[a] = new JPanel(); panels[a].setBackground(Color.RED); panels[a].setBounds(n, 40, 75, 100); mainPanel.add(panels[a]); plusButtons[a] = new JButton("+"); minusButtons[a] = new JButton("-"); labels[a] = new JLabel(Skills[a]+" : 0"); panels[a].add(plusButtons[a]); panels[a].add(minusButtons[a]); panels[a].add(labels[a]); plusButtons[a].addActionListener(this); minusButtons[a].addActionListener(this); }
pointRemaining = new JLabel(strSkillPoint); label = new JLabel("Points Remaininig"); title = new JLabel("Enter Skill Point"); title.setForeground(Color.BLUE); title.setBounds(145, -40, 120, 120); label.setBounds(160, 120, 120, 120); pointRemaining.setBounds(200, 140, 120, 120); mainPanel.add(label); mainPanel.add(pointRemaining); mainPanel.add(title); getContentPane().add(mainPanel);
} public void actionPerformed(ActionEvent e) { int skillPoint = Integer.parseInt(pointRemaining.getText());
for (int z = 0 ; z <Skills.length; z++) { if (e.getSource().equals(plusButtons[z])) { if(skillPoint > 0) { intPoint[z] += 1; skillPoint -=1; labels[z].setText(Skills[z] + " : " + intPoint[z]); pointRemaining.setText(""+skillPoint); } else if(skillPoint <= 0) { intPoint[z] = intPoint[z]; skillPoint = skillPoint; } } else if (e.getSource().equals(minusButtons[z])) { if(intPoint[z] > 0) { intPoint[z] -= 1; skillPoint += 1; labels[z].setText(Skills[z] + " : " + intPoint[z]); pointRemaining.setText(""+ skillPoint); } else if(intPoint[z] <= 0) { intPoint[z] = intPoint[z]; skillPoint = skillPoint; } } } } }
このプログラムをhtmlで開くためにhtmlのドキュメントで <HTML> 省略 <applet code = "MyCharacter2.class" width = "400" height = "300"> <param name="strSkillPoint" value="45"> 省略 </html>
をつくり<param name="strSkillPoint" value="45">で、ユーザーが振り分けられるポイントを変えることができました。
長い文章で申し訳ございません。
今回ご質問したいのは。今度は private final String Skills[] = {"Widthdom", "Strength","Agility" ,"Magic"}; //スキルの名前かしこさ・つよさ・すばやさ・マジックの順 ここの部分を String strSkillPoint; strSkillPoint = getParameter("StrSkillPoint"); <param name="strSkillPoint" value="45"> と振りわけられるスキルのポイントをhtmlドキュメントで変えられるように、 スキルの名前・数も変えられるようにしたいのですが例えば String strSkills[]; Skills[] = getParameter("Skills"); としてもコンパイルでエラーが出てしまいます。 arrayでgetParamaterを使ってもちゃんとコンパイルして実行するにはどのようにすればよいのでしょうか?ご存知の方がいらっしゃれば、アドバイスの方よろしくお願いいたします。 長い文章で申し訳ございません。
|