在生成一个窗体的时候,点击窗体的右上角关闭按钮激发窗体事件的方法:窗体Frame为事件源,WindowsListener接口调用Windowsclosing()。...

事件模式的实现步骤:

开发事件对象(事件发送者)——接口——接口实现类——设置监听对象

一定要理解透彻Gril.java程序。

 

重点:学会处理对一个事件源有多个事件的监听器(在发送消息时监听器收到消息的排名不分先后)。

事件监听的响应顺序是不分先后的,不是谁先注册谁就先响应。

事件监听由两个部分组成(接口和接口的实现类)。

事件源     事件对象                        事件监听

 gril       EmotinEvent       EmotionListener(接口)Boy(接口的实现类)

鼠标事件:MouseEvent,接口:MouseListener

P235 ActionEvent

注意在写程序的时候:import java.awt.*;以及import java.awt.event.*注意两者的不同。

 

在生成一个窗体的时候,点击窗体的右上角关闭按钮激发窗体事件的方法:窗体Frame为事件源,WindowsListener接口调用Windowsclosing()

为了配合后面的实现,我们必须将WindowsListener所有的方法都实现,除了Windowsclosing方法,其余的方法均为空实现。

(练习:写一个带button窗体,点关闭按钮退出。)

上面程序中实现了许多不必要的实现类,虽然是空实现。

为了避免上面那些无用的实现,可以利用WindowEvent的一个WindowEvent类,还是利用windowsListener。还有WindowAdapter类,它已经实现了WindowsListener。它给出的全部都是空实现,那就可以只写想要实现的类,去覆盖其中的类,就不用写空实现。

注意:监听过多,会抛tooManyListener例外。

转载于:https://www.cnblogs.com/borter/p/10744089.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中的JFrame中的按钮调用一个窗体并在另一个窗体上添加数据保存到当前窗体,你可以使用以下步骤: 1. 创建一个新的JFrame或JDialog,这将是你要调用的第二个窗体。 2. 在你的第一个JFrame中创建一个按钮。 3. 在按钮的ActionListener中实例化你的第二个窗体,并将第一个窗体作为参数传递给第二个窗体。 4. 在第二个窗体中添加数据,并将数据返回给第一个窗体。 5. 在第一个窗体中的ActionListener中获取第二个窗体返回的数据,并将其添加到第一个窗体中。 下面是一些代码示例: ``` import javax.swing.*; import java.awt.event.*; public class MyFrame extends JFrame { private JTextField textField; public MyFrame() { textField = new JTextField(20); JButton button = new JButton("Open Second Frame"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { SecondFrame secondFrame = new SecondFrame(MyFrame.this); secondFrame.setVisible(true); } }); add(textField); add(button); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); } public void setData(String data) { textField.setText(data); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new MyFrame().setVisible(true); } }); } } class SecondFrame extends JFrame { private MyFrame myFrame; private JTextField textField; public SecondFrame(MyFrame myFrame) { this.myFrame = myFrame; textField = new JTextField(20); JButton button = new JButton("Save and Close"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String data = textField.getText(); myFrame.setData(data); dispose(); } }); add(textField); add(button); pack(); setLocationRelativeTo(null); } } ``` 这段代码创建了一个JFrame,其中包含一个文本框和一个按钮。当按钮点击时,它将实例化一个新的JFrame(SecondFrame),并将第一个窗体(MyFrame)作为参数传递给它。在第二个窗体中,它包含一个文本框和一个保存按钮。当保存按钮点击时,它将获取文本框中的数据,并将其返回给第一个窗体。在第一个窗体中,它将获取第二个窗体返回的数据,并将其添加到文本框中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值