2014-08-30 6 views
-5

Я хочу написать метод кнопки clear в одном классе в другом пакете. И я хочу называть этот метод прозрачной кнопкой в ​​качестве события нажатия кнопки.Вызвать метод в java netbeans

eg-

Пакет класс а < ---- Я хочу написать метод здесь.

Пакет 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

+0

как позвонить ???? – Dirosh

+0

Вы не можете получить доступ к переменным, которые не объявлены в методе, классе или переданы как аргумент метода. Таким образом, вы можете подумать о передаче списка 'JTextField' (предположим, вы используете этот тип) и называть 'setText (" ")' для каждой записи. Подобно 'public boolean Clear (Список textFields)' и внутри метода: (псевдокод) 'для каждого JTextField как запись в textFields {entry.setText (" "); } '. – Tom

ответ

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...]); 
} 

Вы можете передать столько текстовых полей JTextField к этому методу, как вам нравится.

Вы также можете использовать список, как я упомянул в комментарии, но, я думаю, этот вариант здесь намного удобнее.

+0

Что это b ?? где я могу это заявить? – Dirosh

+0

'b' - это имя вашего второго класса во втором пакете вашего примера. Вы можете назвать его так, как хотите. Но, похоже, у вас уже есть экземпляр класса «b» в вашем первом классе. Так что просто используйте его :). – Tom

 Смежные вопросы

  • Нет связанных вопросов^_^