#java #button #awt #actionlistener
#java #кнопка #awt #actionlistener
Вопрос:
import java.awt.*;
import java.awt.event.*;
//1st step
public class ActionListenerExample implements ActionListener{
public static void main(String[] args) {
Frame f=new Frame("ActionListener Example");
final TextField tf=new TextField();
tf.setBounds(50,50, 150,20);
Button b=new Button("Click Here");
b.setBounds(50,100,60,30);
//2nd step
b.addActionListener(this);
f.add(b);f.add(tf);
f.setSize(400,400);
f.setLayout(null);
f.setVisible(true);
}
//3rd step
public void actionPerformed(ActionEvent e){
tf.setText("Welcome to Javatpoint.");
}
}
В приведенном выше я хочу добавить еще одну кнопку и добавить ActionListener и определить actionPerformed
метод, но этот метод должен печатать только hello в терминале.
Что я буду делать для этого?
Ответ №1:
Может быть, это может быть полезно.
В основном необходимо добавить отдельных прослушивателей для каждой кнопки. (можно использовать и тот же прослушиватель, но затем необходимо отфильтровать, откуда приходит событие, чтобы выполнять разные действия для каждой кнопки)
Также он обновляется для события закрытия. Но лучше попробуйте посмотреть JFrame(Swing)
, так Frame
как он довольно древний. В любом случае основные принципы те же.
import java.awt.Button;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ALTest {
public static void main(String[] args) {
Frame f = new Frame("ActionListener Example");
final TextField tf = new TextField();
tf.setBounds(50, 50, 150, 20);
Button b = new Button("Button_1");
b.setBounds(50, 100, 60, 30);
Button b2 = new Button("Button_2");
b2.setBounds(150, 100, 60, 30);
f.add(b);
f.add(b2);
ActionListener al_1 = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
tf.setText("B1 : " e.getActionCommand());
}
};
ActionListener al_2 = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
tf.setText("B2 : " e.getActionCommand());
}
};
b.addActionListener(al_1);
b2.addActionListener(al_2);
f.add(tf);
f.setSize(400, 400);
f.setLayout(null);
f.setVisible(true);
// close frame
f.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
}
}
Вывод:
Для вывода на консоль просто обновите al_2
с System.out...
помощью вместо tf TextField