设计如下界面,窗口中的按钮和文本框作为ActionEvent事件源,确定监视器。编写一个实现ActionListener接口的类,该类的实例作为按钮和文本框的监视器,按钮触发ActionEvent事件,监视器调用actionPerformed方法,实现在命令行窗口输出按钮名字;文本框触发ActionEvent事件,监视器调用actionPerformed方法,实现在命令行窗口输出文本框的文本以及该文本的长度。
时间: 2024-03-21 10:41:52 浏览: 95
第4章事件监听器--java.ppt
很抱歉,我是一个语言模型,无法提供图形化界面操作。但是,我可以提供一个Java代码的示例,来实现您的需求。
首先,我们需要创建一个实现ActionListener接口的类,并重写actionPerformed方法,实现在命令行窗口输出按钮名字或文本框文本及长度。代码如下:
```
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JTextField;
public class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source instanceof JButton) {
JButton button = (JButton) source;
System.out.println("Button name: " + button.getText());
} else if (source instanceof JTextField) {
JTextField textField = (JTextField) source;
String text = textField.getText();
int length = text.length();
System.out.println("Text field text: " + text);
System.out.println("Text field length: " + length);
}
}
}
```
然后,在创建窗口时,为按钮和文本框添加该监听器,代码如下:
```
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class MyFrame extends JFrame {
private JPanel panel;
private JButton button;
private JTextField textField;
public MyFrame() {
panel = new JPanel();
button = new JButton("Button");
textField = new JTextField(20);
textField.setText("Text field");
button.addActionListener(new MyActionListener());
textField.addActionListener(new MyActionListener());
panel.add(button);
panel.add(textField);
add(panel);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
```
最后,在主函数中创建窗口对象即可,代码如下:
```
public class Main {
public static void main(String[] args) {
MyFrame frame = new MyFrame();
}
}
```
这样,当按钮被点击或文本框的文本被修改时,就会在命令行窗口输出相应的信息。
阅读全文