2014-08-30 48 views
-5

我想在另一個包中的一個類中編寫清除按鈕方法。 而我想在清除按鈕中將該方法稱爲按鈕單擊事件。在java中調用方法netbeans

EG-

套餐A類< ----我想在這裏寫方法。

包B類b < ----在這裏我有這個清除按鈕,我想在這裏調用該方法。

我在文本字段中遇到了一些錯誤!!!

public boolean Clear(){ 
    boolean clearDate =false; 
    Connection dbConn = null; 

    StaffId_Text.setText(""); 
    First_Name_Text.setText(""); 
    Middle_Name_Text.setText(""); 
    Last_Name_Text.setText(""); 
    Civil_Status_Text.setText(""); 
    NIC_Text.setText(""); 
    Email_Text.setText(""); 
    Address_Text.setText(""); 
    Contact_Number_Text.setText(""); 

    return clearDate; 
} 
+0

我不認爲它與Netbeans有什麼關係。 – maxx777 2014-08-30 18:14:24

+0

如何撥打???? – Dirosh 2014-08-30 18:16:10

+0

您不能訪問未在方法,類中聲明的變量或作爲方法參數傳遞的變量。所以你可以考慮傳遞一個'JTextField'列表(我猜你使用這個類型),併爲每個條目調用'setText(「」)'。像'public boolean Clear(List textFields)'和方法內部:(僞代碼)'爲每個JTextField作爲textFields中的條目{entry.setText(「」); }'。 – Tom 2014-08-30 18:16:55

回答

0

爲了在方法中使用變量,該變量必須在那裏「已知」。這可以通過聲明一個像private String text這樣的變量,或者通過將變量作爲參數傳遞給方法來完成,如b.Clear(textField)。這樣方法Clear知道變量textField,並可以使用它。

這是一個例子,如何可以做到這一點:

public boolean clear(JTextField... textfields) { // method names should begin 
    boolean clearDate = false;     // with a lower case letter 
    Connection dbConn = null; 

    for (JTextField textField : textfields) { 
     textField.setText(""); 
    } 

    return clearDate; 
} 

在這裏,我聲明一個稱爲clear方法,其將採取的JTextField類型的變量的量。在該方法中,我遍歷每個傳遞的JTextField,並調用其上的方法setText("")

現在你可以打電話給你的方法是這樣的:

public void clearEvent() { 
    b.clear(staffIdText, firstNameText, middleNameText, [and so on...]); 
} 

只要你喜歡你可以通過儘可能多的JTextFields將這種方法。

你也可以使用像我在評論中提到的列表,但我想這個變體在這裏更方便。

+0

那是什麼? 我可以在哪裏申報? – Dirosh 2014-08-31 05:08:15

+0

'b'是你的第二個包中的第二個類的名稱。你可以像你想要的那樣命名它。但我想你已經在你的第一堂課有一個「b」類的實例。所以就用它:)。 – Tom 2014-08-31 07:42:04