2015-04-05 40 views
1

好吧,所以我現在正在編寫一個程序,它從JTextField獲取信息,並且將它乘以一定的量,這取決於在設置的類中設置了double值那個按鈕。當按鈕被點擊時,我想從分配給它的類文件中檢索一個int。但我想把它們分配給世界。這真的很難解釋,但基本上現在我必須硬編碼所有。這是當前的代碼:Java從單獨的類加載整數

public void actionPerformed(ActionEvent e) 
{ 
    System.out.println("Clicked: " + getButtonName()); 

    if (Settings.SelectedChamp == "Aatrox") { 

     TestFrame.PNameField.setText(ChampionScales.PNameAatrox); 
     TestFrame.QNameField.setText(ChampionScales.QNameAatrox); 
     try { 
      int QMath = (int) Double.parseDouble(TestFrame.AttackDamageField.getText()); 
      System.out.println(ChampionScales.QBaseDamageAatrox[0] + "/" 
        + ChampionScales.QBaseDamageAatrox[1] + "/" 
        + ChampionScales.QBaseDamageAatrox[2] + "/" 
        + ChampionScales.QBaseDamageAatrox[3] + "/" 
        + ChampionScales.QBaseDamageAatrox[4] + "(+" + QMath 
        * 0.6 + ")"); 
     } catch (Exception e1) { 
      int QMath = 0; 
      System.out.println(ChampionScales.QBaseDamageAatrox[0] + "/" 
        + ChampionScales.QBaseDamageAatrox[1] + "/" 
        + ChampionScales.QBaseDamageAatrox[2] + "/" 
        + ChampionScales.QBaseDamageAatrox[3] + "/" 
        + ChampionScales.QBaseDamageAatrox[4] + "(+" + QMath 
        * 0.6 + ")"); 
     } 
    } 
} 

這裏我說得那麼,如果你點擊Aatrox的按鈕,它會做數學題,這一切鍵入到控制檯。但我也爲這些整數設置了整個班級。在這裏:`

public class Aatrox 
{ 
    public static String PName = "Blood Well"; 

    public String QName = "Dark Flight"; 
    public int QBaseDamage[] = { 70, 115, 160, 205, 250 }; 
    public double QScalingAD = .6; 
    public double QScalingAP = 0; 
    public String QADDamageStyle = "Bonus"; 

    public String WName = "Blood Thirst"; 
    public int WBaseDamage[] = { 20, 25, 30, 35, 40 }; 
    public double WScalingAD = 1; 
    public double WScalingAP = 0; 
    public String WADDamageStyle = "Bonus"; 

    public String W2Name = "Blood Price"; 
    public int W2BaseDamage[] = { 60, 95, 130, 165, 200 }; 
    public double W2ScalingAD = 1; 
    public double W2ScalingAP = 0; 
    public String W2ADDamageStyle = "Bonus"; 

    public String EName = "Blades of Torment"; 
    public int EBaseDamage[] = { 75, 110, 145, 180, 215 }; 
    public double EScalingAD = .6; 
    public double EScalingAP = .6; 
    public String EADDamageStyle = "Bonus"; 

    public String RName = "Massacre"; 
    public int RBaseDamage[] = { 200, 300, 400 }; 
    public double RScalingAD = 0; 
    public double RScalingAP = 1; 
    public String RADDamageStyle = null; 

} 

所以我希望能夠使每一個冠軍就是這樣的一個文件,並保留所有相同的名稱。問題是..我怎麼稱呼冠軍的整數和東西,而不必硬編碼Aatrox.QScalingAD(); or Teemo.EScalingAP();?我怎麼能普遍做到這一點?謝謝您的幫助。我已經被絆倒了哈哈。 `

回答

0
You make a base class which you fill with your common stuff: 

class BaseClass 
{ 
    public static String PName = "Blood Well"; 

    public String QName = "Dark Flight"; 
    public int QBaseDamage[] = { 70, 115, 160, 205, 250 }; 
    public double QScalingAD = .6; 
    public double QScalingAP = 0; 
    public String QADDamageStyle = "Bonus"; 

    public String WName = "Blood Thirst"; 
    public int WBaseDamage[] = { 20, 25, 30, 35, 40 }; 
    public double WScalingAD = 1; 
    public double WScalingAP = 0; 
    public String WADDamageStyle = "Bonus"; 

    public String W2Name = "Blood Price"; 
    public int W2BaseDamage[] = { 60, 95, 130, 165, 200 }; 
    public double W2ScalingAD = 1; 
    public double W2ScalingAP = 0; 
    public String W2ADDamageStyle = "Bonus"; 

    public String EName = "Blades of Torment"; 
    public int EBaseDamage[] = { 75, 110, 145, 180, 215 }; 
    public double EScalingAD = .6; 
    public double EScalingAP = .6; 
    public String EADDamageStyle = "Bonus"; 

    public String RName = "Massacre"; 
    public int RBaseDamage[] = { 200, 300, 400 }; 
    public double RScalingAD = 0; 
    public double RScalingAP = 1; 
    public String RADDamageStyle = null; 
} 

class Aatrox extends BaseClass 
{ 
    //Do Aatrox-specific stuff here! 
} 

class xyz extends BaseClass 
{ 
    //Do xyz-specific stuff here 
} 

與 '' 延伸Aatrox和XYZ都具有類BaseClass的所有功能。

+0

所以我想出了一個想法。這裏寫的是一個例子: \t \t \t System.out.println(「ChampionScales.QBaseDamage」+ ButtonName +「[1]」); 無論如何,如果我將printline消息的內容轉換爲字符串,我可以將字符串轉換爲一行代碼嗎? – killnpwn3 2015-04-06 01:56:30