文章目录
java常用于后端开发,用于UI的Swing API较少有人用,但是在做一些窗口程序还是不得不用到,比如做idea插件的时候。
idea中可以快速构建swing UI

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

注意,部分组件需要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 移动滑块

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

宽度与高度

EventListner 它是一个标记接口,每一个监听器接口必须扩展它。
如下示例是监听JTextArea是键盘事件

事件监听器接口
| 监听器接口 | 说明 |
|---|---|
| ActionListener | 接收动作事件 |
| ComponentListener | 接收组件事件 |
| ItemListener | 接收项目事件 |
| KeyListener | 接收按键事件 |
| MouseListener | 接收鼠标事件 |
| WindowListener | 接收窗口事件 |
| AdjustmentListener | 接收调整事件 |
| ContainerListener | 接收容器事件 |
| 接收容器事件 | 鼠标移动事件 |
| FocusListener | 接收焦点事件 |
| 管理器 | 说明 |
|---|---|
| BorderLayout | 安排组件适应于五个地区:东、西、北、南和中心。 |
| CardLayout | 对象把容器中的每一个组件看成一个卡片。一次只有一个卡片是可见的。 |
| FlowLayout | 是默认的布局。它用定向流动来布局组件。 |
| GridLayout | 用一个矩形网格形式来管理组件。 |
| GridBagLayout | 这是最灵活的布局管理器类。在不需要相同大小的组件的情况下,GridBagLayout 对象垂直、水平或沿着它们的基线来排列组件。 |
| GroupLayout | 分层次地归类组件,为了在一个容器中放置它们。 |
| SpringLayout | 根据一组约束安置与它相关的容器的孩子。 |
| GridLayoutManager | idea布局管理器,仅idea SDK中有 |
如果是idea插件项目,不用生成main方法。

然后运行该方法,可以编译出GUI对的java代码
由于近期询要的人过多,自行加群769119544领取源码目录一、功能需求二、数据字典1.数据流条目2.文件条目三、用例图四、数据流图五、E-R图六、系统框架 七、数据库设计八、界面设计九、代码展示1、数据表对象层(domain层)1.1、房间对象初始化1.2、旅客对象初始化1.3、 管理员对象初始化2、数据访问对象层(dao层)2.1、房间相关信息2.2、旅客信息2.3、管理员信息3、util包3.1、JDBC交互数据库(DBUtil)3.2、实时时间(DateUtil)4、业务层(server层)4.1、房间(RoomContorller)4.2、旅客(RoomInContorller)4.