当前位置 : 主页 > 编程语言 > java >

《Java 核心技术 卷1》 笔记 第九章 Swing 用户界面组件

来源:互联网 收集:自由互联 发布时间:2022-07-13
主要内容 Swing窗口中常用的组件 页面布局 在 swing 中实现对话框 9.1 Swing 和 MVC (Model-View-Controller)模式 9.1.1 设计模式 模型:房间,窗户 视图:实际窗户在房间的展示效果 控制器:设计窗


主要内容

  • Swing窗口中常用的组件
  • 页面布局
  • 在 swing 中实现对话框
  • 9.1 Swing 和 MVC (Model-View-Controller)模式

    9.1.1 设计模式

    模型:房间,窗户

    视图:实际窗户在房间的展示效果

    控制器:设计窗户的大小、位置、角度、制作材料

    Swing 中用到的设计模式:

    组合模式:多个组件包含在容器中

    装饰模式:滚动条面板,传入现有的组件类,对现有类操作

    《Java 核心技术 卷1》 笔记 第九章 Swing 用户界面组件_开发语言

    策略模式:布局管理器,面板和固定的,通过参数传入内部组件的排列方式

    9.1.2 MVC 模式

    组件三要素

    内容:这个页面有什么组件,当前的组件状态是怎样的。比如按钮,按钮是否按下。

    外观:颜色、大小

    行为:进行某种底层事件或表意事件时,对事件的反应

    为了更好的完成组件功能,分离类的职责,把类分为三种:

    M(Model) :存储内容,具体现在流行翻译为模型,实际是包含了结构和内容两种存储

    V(View):  展示内容,把存储内容取出筛选,部分货全部展现给用户

    C(Controller):  处理事件,修改展示内容或者修改存储内容,完成用户期望的操作

    9.1.3 Swing 按钮的 MVC 分析

    DefaultXXModel 是组件默认展示的模型,比如DefaultButtonModel

    《Java 核心技术 卷1》 笔记 第九章 Swing 用户界面组件_mvc_02

    为了方便,直接继承这个类 DefaultButtonModel ,我们把这个按钮是否能点击设置为false

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;

    public class Main {
    public static void main(String[] args){
    Main solution = new Main();

    EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
    MyFrame f = new MyFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    });
    }
    }

    class MyFrame extends JFrame {
    public MyFrame(){
    setSize(300,200);
    MyPanel p = new MyPanel();
    add(p);
    }
    }

    class MyPanel extends JPanel{
    public MyPanel(){
    JButton b = new JButton("test");
    b.setBounds(new Rectangle(140,90,20,20));
    b.setModel(new MyButtonModel());
    b.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    b.setBackground(Color.RED);
    }
    });
    add(b);
    }
    }

    class MyButtonModel extends DefaultButtonModel{
    public MyButtonModel(){
    setEnabled(false);
    }
    }

    《Java 核心技术 卷1》 笔记 第九章 Swing 用户界面组件_开发语言_03

    它的好处在于,可以为类似的控件设置统一的默认格式,从而减少重复设置的代码冗余

     相关内容:选择 《Java核心技术 卷1》查找相关笔记

     喜欢的话,点个赞吧~!平时做题,以及笔记内容将更新到公众号。

    关注公众号,互相学习:钰娘娘知识汇总

    《Java 核心技术 卷1》 笔记 第九章 Swing 用户界面组件_java_04

    【文章原创作者:阿里云代理 http://www.558idc.com/aliyun.html 网络转载请说明出处】
    网友评论