[英]Storing values from textfields in jframe class in a object in another class
一般來說,我對編程和Java還是很陌生。 我目前是一名學生,我正嘗試在課堂外做一個項目,以使自己更加精通Java。 目前,我正在研究基於文本的RPG,我試圖在其中創建主要角色,為角色分配基本技能點並在整個游戲中使用該信息。 到目前為止,我已經制作了一個jframe類,其中用戶具有6個基本值為1的不同技能。用戶可以使用加號和減號按鈕從特定技能中添加或減去一個值。 這就是我卡住的地方。 我不知道如何將這些值保存到其他類可以使用的對象。 我會很感激我能得到的任何幫助。 謝謝。
public class CharacterStatsGUI extends javax.swing.JFrame {
static int skill1 = 1;
static int skill2 = 1;
static int skill3 = 1;
static int skill4 = 1;
static int skill5 = 1;
static int skill6 = 1;
static int skillPoints = 10;
private void txthealthActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
txthealth.setText(String.valueOf(skill1));
}
private void btnhpActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(skillPoints >= 1){
skill1++;
skillPoints--;
txthealth.setText(String.valueOf(skill1));
txtpoints.setText(String.valueOf(skillPoints));
}
else{
JOptionPane.showMessageDialog(null, "You dont have enough skills points");
}
}
private void btnhmActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(skillPoints >= 0 && skill1 > 1){
skill1--;
skillPoints++;
txthealth.setText(String.valueOf(skill1));
txtpoints.setText(String.valueOf(skillPoints));
}
else{
JOptionPane.showMessageDialog(null, "Minimum skill value is 1.");
}
}
有多個解決此問題的方法。 並非所有這些方法都是有效的,也不是全部都是美麗的,但是如果“要使自己更精通Java,那么最好了解各種方法!這里有一些選擇:
static int skill1 = 1;
public static int skill1 = 1;
,然后通過調用myCharacterStatsGUI.skill1
處理該數據。 public int getSkill1
private
並創建一些公共方法,例如public int getSkill1
或public int getSkill(int numSkill)
,它們返回正確技能的int值。 MainCharacter
類,其中包含所有字符值和所包含的技能。 此類必須實現選項2方法。 比第三點更好的是,您可以將MainCharacter類與其值分開,並將所有技能存儲在內部類Skills中。 當您想通過調用特定方法來獲取這些值時。 在下面的代碼中,我想向您顯示此選項:
public Class MainChar{ private Skills skills; public MainChar(){ this.skills=new Skills(); } /* Call it from your CharacterStatsGUI class, in the method txthealthActionPerformed */ public void augmentSkill(){ skills.augment() } public int getHealt(){ return skills.getHealt(); } private class Skills{ /*This example use only a skill, but you can extend it with others values*/ private int health; public Skills(){ health=1; } public void augment(){ health++; } public int getHealt(){ return health; } } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.