如何在 Java AWT 中收听两个单独的按钮?
How to Listen two separate buttons in Java AWT?
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。
我会为此做什么?
也许这会有用。
主要是需要为每个按钮添加单独的侦听器。(也可以使用相同的侦听器,但需要从事件的来源进行过滤,以便对每个按钮执行不同的操作)
另外更新关闭事件。但最好尝试查看 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
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。
我会为此做什么?
也许这会有用。
主要是需要为每个按钮添加单独的侦听器。(也可以使用相同的侦听器,但需要从事件的来源进行过滤,以便对每个按钮执行不同的操作)
另外更新关闭事件。但最好尝试查看 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