Хорошо. Я не уверен в названии моего вопроса и использовал ли я правильные слова. Поскольку я являюсь самоотверженным полным любителем, мне трудно задавать свой вопрос, поскольку я не знаю правильных условий для вещей, поэтому я напишу что-то в коде, а затем задаю свой вопрос. Я написал его без импортных инструкций, настройки макетов и полос прокрутки и некоторые другие вещи, чтобы упростить его.Как определить источник события в ActionListener?
public class Foo{
JTextArea text;
public static void main(String[] args){
Foo foo = new Foo;
foo.go();
}
public void go(){
JFrame frame = new JFrame();
JButton button = new JButton("One");
JButton button2 = new JButton("Two");
JPanel panel = new JPanel();
frame.setVisible(true);
frame.setSize(600, 300);
frame.getContentPane().add(BorderLayout.EAST, panel);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(button);
panel.add(button2);
text = new JTextArea(10, 20);
panel.add(text);
button.addActionListener(new ButtLis());
button2.addActionListener(new ButtLis());
}
class ButtLis implements ActionListener{
@override
// this is where I have the problem
text.append();
}
}
То, что я хочу, если заявление, чтобы войти в мой внутренний класс (ButtLis), который будет определять, какая из кнопок нажата, а затем добавить некоторый текст в JTextArea на основе этого. Но я не знаю, как позвонить, чтобы узнать, какая кнопка была нажата.
'event.getSource()' в вашем ActionPerformed (событие ActionEvent) '. Вам нужно будет отбросить его соответствующим образом. –
См. Http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html –