2015-10-13 62 views
-2

我目前正試圖添加一個GUI到我的代碼,但我似乎無法創建一個方法在我的類中有一個JLabel導入。如何使用JLabel創建和調用類中的方法?

import java.util.Scanner; 
import javax.swing.JOptionPane; 
import java.awt.FlowLayout; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class LeagueCalLifeSteal extends JFrame { 
    private JLabel item2; 
    public LeagueCalLifeSteal() { 
     super("LS Calculation"); 

     Scanner New = new Scanner (System.in); 
     int basems, boots, ench; 

這是當前的代碼,它沒有錯誤的一部分,但我不能把它放在我的主類,因爲我不能沒有得到一個錯誤創建一個方法,我試着放置方法的代碼上許多不同的地方,但我從來沒有設法得到它的權利。

if (pick.equals ("LS") || pick.equals ("LS.")){ 
     LeagueCalLifeStealObject.LGCLifeSteal(); 
} 

這是我用來從主類中調用方法的代碼位,在我嘗試添加GUI之前。

編輯:

import java.util.Scanner; 
import javax.swing.JOptionPane; 
import java.awt.FlowLayout; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class LeagueCalLifeSteal extends JFrame { 
    public void LifeSteal() { //Added the method statement 
    private JLabel item2; //Error on 'item2' "Illegal modifier for parameter 'item2';only final is permitted" 
    public LeagueCalLifeSteal() { //Error on 'public' "Syntax error on token 'public', new expected" 
     super("LS Calculation"); 

     Scanner New = new Scanner (System.in); 
     int basems, boots, ench; 
     int TotalAP, Rrank, Baseheal = 0, Heal, MaxH, Mh1, Mh2, Mh3,Mh4; 
     double hptotal, hps; 
     double LifeS, AttackD, WithSV, HPrest; 

     System.out.println("message"); 
     AttackD = New.nextDouble(); 
     System.out.println("message"); 
     LifeS = New.nextDouble(); 

     HPrest = AttackD*LifeS/100; 
     WithSV = HPrest + (HPrest*20/100); 

     System.out.println("message"); 


    } 
    } 

} 

這是類我試圖調用的全部代碼,錯誤都在上面指定的。

該類應該在用戶請求時調用。

if (pick.equals ("Lifesteal") || pick.equals ("LifeSteal") || pick.equals ("Lifesteal.") || pick.equals ("LifeSteal.") || pick.equals ("lifesteal")){ 
     LeagueCalLifeStealObject.LifeSteal(); 
} 

這是來自主類,如果用戶要求LifeSteal類它調用它。 但我似乎無法在LifeSteal類中創建方法,否則我會在JLabel代碼中出現錯誤。

+1

你能顯示完整的代碼嗎?看起來是一個簡單的問題,你正在看它。 –

+1

如果您向我們顯示錯誤消息,這也會有所幫助。我們在閱讀頭腦或猜測我們看不到的東西時很糟糕。這是什麼,'LeagueCalLifeStealObject.LGCLifeSteal();',應該是什麼意思?它看起來不像有效的Java。 –

+0

導入JLabel與您的錯誤完全無關。發佈整個代碼並告訴我們錯誤是什麼。 「我試着將方法代碼放在許多不同的地方_」而不是盲目地複製/粘貼,並希望事情能夠奏效,爲什麼不真正瞭解這些東西? – csmckelvey

回答

0

這有什麼好做進口或者使用一個JLabel和一切與

  • 你正在聲明中變量作爲私人的方法 - 你不能,不應該這樣做因爲它沒有意義。局部變量對於該塊之外的任何內容始終是不可見的。
  • 你有一個嵌套在另一個方法中的構造函數,另一個是Java中的非法構造。

一個快速的解決方案是增加一個右括號爲你偷取的方法,讓你不嵌套私有字段和構造函數:

import java.util.Scanner; 
import java.awt.FlowLayout; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

@SuppressWarnings("unused") 
public class LeagueCalLifeSteal extends JFrame { 
    public void LifeSteal() { 
     // TODO: put code in this method 
    } 

    private JLabel item2; 

    public LeagueCalLifeSteal() { 
     super("LS Calculation"); 

     Scanner New = new Scanner(System.in); 
     int basems, boots, ench; 
     int TotalAP, Rrank, Baseheal = 0, Heal, MaxH, Mh1, Mh2, Mh3, Mh4; 
     double hptotal, hps; 
     double LifeS, AttackD, WithSV, HPrest; 

     System.out.println("message"); 
     AttackD = New.nextDouble(); 
     System.out.println("message"); 
     LifeS = New.nextDouble(); 

     HPrest = AttackD * LifeS/100; 
     WithSV = HPrest + (HPrest * 20/100); 

     System.out.println("message"); 

    } 

} 

但是你可能只想放棄這個代碼和啓動結束,因爲你可能會有更好的結果。您還需要遵循Java命名規則,給出方法和字段名稱,以小寫字母和以大寫字母開頭的類名開頭。

相關問題