• JAVA Swing 与 GUI Form


    写在前面

    java常用于后端开发,用于UI的Swing API较少有人用,但是在做一些窗口程序还是不得不用到,比如做idea插件的时候。

    1、idea快速创建GUI Form

    idea中可以快速构建swing UI

    图1
    如下,新建GUI Form后,会产生两个文件:一个java文件,一个xml文件。
    两个文件是关联的,java文件可以向程序提供xml文件的内容,xml文件中记录了所有UI组件的信息。
    右边可以通过拖动的形式进行页面设计。

    图2

    2、认识组件

    注意,部分组件需要JDK7以上

    组件说明
    JFrame一个界面只有一个JFrame窗体组件,但可以有多个JPanel。idea插件页面不考虑JFrame。
    JPanel面板组件,如上图中右边所有组件都可以放到面板中。
    Hspacer、Vspacer控制组件间的水平间距、垂直间距
    JscrollPane滚动面板,可与JTextPane等组成可滚动的区域
    JScrollBar单向滚动条
    JButton、JRadioButton、JCheckBox按钮、单选按钮、多选按钮
    JLabel标签,显示固定文字
    JTextField、JPasswordField、JFormattedTextField单行文本编辑框
    JTextArea文本框
    JTextPane、JEditePane可以编辑和显示html,rtf和普通文本的富文本组件
    JComboBox可编辑下拉组件
    JTable表格
    JList列表
    JTree树结构,适合多级显示
    JTabbedPane选项卡面板
    JSplitPane分隔面板,用于两两分隔,多个分隔用它嵌套实现
    JSpinner单行输入框+上下选择器
    JSlider移动滑块,用来选值
    JSeparator分割线
    JProgressBar进度条
    JToolBar可以在程序的主窗口之外浮动或是托拽,里面可以添加各种组件
    JTabbedPane选项卡面板

    在这里插入图片描述

    JSpinner 单行输入框+上下选择器

    在这里插入图片描述

    JSlider 移动滑块

    在这里插入图片描述

    3、了解各个组件的属性

    一些通用属性,当然这些属性也可以通过java代码去控制

    在这里插入图片描述
    宽度与高度

    在这里插入图片描述

    4、事件处理

    4.1、事件监听器

    EventListner 它是一个标记接口,每一个监听器接口必须扩展它。
    如下示例是监听JTextArea是键盘事件
    在这里插入图片描述
    事件监听器接口

    监听器接口说明
    ActionListener接收动作事件
    ComponentListener接收组件事件
    ItemListener接收项目事件
    KeyListener接收按键事件
    MouseListener接收鼠标事件
    WindowListener接收窗口事件
    AdjustmentListener接收调整事件
    ContainerListener接收容器事件
    接收容器事件鼠标移动事件
    FocusListener接收焦点事件

    5、布局管理器

    管理器说明
    BorderLayout安排组件适应于五个地区:东、西、北、南和中心。
    CardLayout对象把容器中的每一个组件看成一个卡片。一次只有一个卡片是可见的。
    FlowLayout是默认的布局。它用定向流动来布局组件。
    GridLayout用一个矩形网格形式来管理组件。
    GridBagLayout这是最灵活的布局管理器类。在不需要相同大小的组件的情况下,GridBagLayout 对象垂直、水平或沿着它们的基线来排列组件。
    GroupLayout分层次地归类组件,为了在一个容器中放置它们。
    SpringLayout根据一组约束安置与它相关的容器的孩子。
    GridLayoutManageridea布局管理器,仅idea SDK中有

    6、生成main方法

    如果是idea插件项目,不用生成main方法。

    在这里插入图片描述
    然后运行该方法,可以编译出GUI对的java代码

  • 相关阅读:
    高速DSP系统设计参考指南(七)电磁干扰基础
    06 【Sass语法介绍-函数】
    基于Python实现k-means算法和混合高斯模型
    神经网络小记-混淆矩阵
    python接口自动化封装导出excel方法和读写excel数据
    利用Docker 实现 MiniOB环境搭建
    Python进阶全系列
    Spark RDD编程模型及算子介绍(二)
    简单代码,随机点名器
    如何设计一个在长链接基础上的安全可扩展的订阅/推送服务
  • 原文地址:https://blog.csdn.net/a__int__/article/details/127841026