一个简单关于观察者模式的Swing GUI 例子
一个简单关于观察者模式的Swing GUI 例子
刀狂剑痴 发表于2年前
一个简单关于观察者模式的Swing GUI 例子
  • 发表于 2年前
  • 阅读 37
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

这个例子展示了如何创建一个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)
共有 人打赏支持
粉丝 18
博文 111
码字总数 82582
×
刀狂剑痴
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: