) 设计如下界面,窗口中的按钮和文本框作为ActionEvent事件源,确定监视器。编写一个实现ActionListener接口的类,该类的实例作为按钮和文本框的监视器,按钮触发ActionEvent事件,监视器调用actionPerformed方法,实现在命令行窗口输出按钮名字;文本框触发ActionEvent事件,监视器调用actionPerformed方法,实现在命令行窗口输出文本框的文本以及该文本的长度。
时间: 2024-03-20 18:45:12 浏览: 18
很好,这是一个关于Java GUI编程的问题。以下是实现该需求的代码:
```java
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class ButtonTextFieldDemo implements ActionListener {
private JButton btn;
private JTextField textField;
public ButtonTextFieldDemo() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 100);
frame.setLayout(new FlowLayout());
btn = new JButton("按钮");
btn.addActionListener(this);
frame.add(btn);
textField = new JTextField("文本框", 15);
textField.addActionListener(this);
frame.add(textField);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == btn) {
System.out.println("按钮名字:" + btn.getText());
} else if (source == textField) {
String text = textField.getText();
int length = text.length();
System.out.println("文本框文本:" + text + ",长度:" + length);
}
}
public static void main(String[] args) {
new ButtonTextFieldDemo();
}
}
```
在上面的代码中,我们创建了一个窗口,并在窗口中添加了一个按钮和一个文本框。为了实现监视器,我们让ButtonTextFieldDemo类实现ActionListener接口,并实现actionPerformed方法。在该方法中,我们首先判断事件源是哪个组件,然后分别输出按钮的名字或文本框的文本和长度。
最后,我们在main方法中创建ButtonTextFieldDemo类的实例,并显示窗口。当用户点击按钮或在文本框中输入回车时,监视器会自动调用actionPerformed方法,并输出信息到命令行窗口。