一个简单关于观察者模式的Swing GUI 例子

这个例子展示了如何创建一个Swing GUI 例子,并解释他为什么是一个观察者模式使用者。 完成代码

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
 
public class SimpleSwingExample {
 
  public static void main(String[] args) {
    JFrame frame = new JFrame("Frame Title");
    final JTextArea comp = new JTextArea();
    JButton btn = new JButton("click");
    frame.getContentPane().add(comp, BorderLayout.CENTER);
    frame.getContentPane().add(btn, BorderLayout.SOUTH);
 
    btn.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent ae) {
        comp.setText("Button has been clicked");
      }
    });
 
    int width = 300;
    int height = 300;
    frame.setSize(width, height);
 
    frame.setVisible(true);
  }
}

逐步解释

首先,我们需要一个容器像框架(Frame),窗口(Window),应用(Applet)去显示组件如面板(panels),按钮(buttons),文本域(text area)等等

JFrame frame = new JFrame("Frame Title");

创建一些组件像 panels,buttons, text areas等等。

final JTextArea comp = new JTextArea();

JButton btn = new JButton("click");

增加组件去显示文本,并通过布局管理器安排布局

frame.getContentPane().add(comp,BorderLayout.CENTER);
frame.getContentPane().add(btn, BorderLayout.SOUTH);

给button附加一个监听器。与组件互动产生一个事件,联系用户的动作与组件,附加一个监听器给她。 这个 addActionListener方法是主体的注册观察者方法,像看一个简单的观察者模式,去 观察者模式例子

btn.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent ae){
    comp.setText("Button has been clicked");
  }
});

这个监听器借口接受动作事件。有兴趣处理动作事件的类(这里是Main)实现这个接口,用那个类创建的对象使用组件的addActionListener方法注册给组件,当动作事件发送,这个对象动作执行执法将被唤醒。 Frame展示

int width = 300;
int height = 300;
frame.setSize(width, height);
frame.setVisible(true)

转载于:https://my.oschina.net/markho/blog/498206

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值