2013-04-28 2 views
-2

У меня есть, например, 2 текстовых поля (txt1 и txt2) и две кнопки (btn1 и btn2). Я хочу построить один метод, который установит «привет» в txt1, если нажата btn1, или «привет» в txt2, если нажата кнопка btn2.Манипулировать компонентами по их названию?

Я думал о делать что-то вроде этого:

txt1.setName("1"); txt2.setName("2"); 

in btn1 listener: setHello(txt1); 
in btn2 listener: setHello(txt2); 

setHello(String name){ 
(componentByName?(name)).setText("hello") 
} 

Есть ли способ componentByName(name)?

+0

Под каким названием вы имеете в виду? Имя переменной? Что делать, если объект не имеет имени, говорят, что он хранится в массиве или коллекции? Что делать, если две переменные с разными именами относятся к одному и тому же объекту компонента? Какая переменная «имя» является той, которая имеет значение? Я думаю, что вы придаете слишком большое значение переменным «именам», когда действительно важны ссылки *** ***. –

ответ

0

Используйте ActionListener. Action Listner используется в любое время, когда нажата кнопка или что-то вроде объекта (чаще всего используется для кнопок). Метод actionPerformed включен в класс ActionListener.

public void actionPerformed(ActionEvent e) { 
     if(e.getSource() == button1) 
      txt1.setName("1"); 
     else 
      txt2.setName("2"); 
    } 

Не забудьте реализовать ActionListener в своем классе, и добавьте ActionListener на кнопках в вашей программе.

Надеюсь, это поможет!

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