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代码