目录
1.GUI的介绍
1.1GUI概述
  早期,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI)”。就是到现在,我们还可以依稀看到它们的身影:在Windows中开个DOS窗口,就可看到历史的足迹。后来,Apple公司率先在电脑的操作系统中实现了图形化的用户界面(Graphical User Interface,简称GUI),但由于Apple公司封闭的市场策略,自己完成电脑硬件、操作系统、应用软件一条龙的产品,与其它PC不兼容。这使得Apple公司错过了一次一统全球PC的好机会。
后来,Microsoft公司推出了风靡全球的Windows操作系统,它凭借着优秀的图形化用户界面,一举奠定了操作系统标准的地位。这也造就了世界首富---比尔.盖茨和IT业的泰山北斗微软公司。
在这图形用户界面风行于世的今天,一个应用软件没有良好的GUI是无法让用户接受的。而Java语言也深知这一点的重要性,它提供了一套可以轻松构建GUI的工具。在本章和下一章中,我们将向你充分证明这一点。
1.2Java提供了三个主要包做GUI开发:
java.awt 包 – 主要提供字体/布局管理器
javax.swing 包[商业开发常用] – 主要提供各种组件(窗口/按钮/文本框)
java.awt.event 包 – 事件处理,后台功能的实现。
2.Swing组件
如图所示:swing组件主要可分为三个部分,后面会详细介绍
(1)顶层容器::常用有JFrame,JDialog
(2)中间容器:JPanel,JOptionPane,JScrollPane,JLayeredPane 等,主要以panel结尾。
(3)基本组件:JLabel,JButton,JTextField,JPasswordField,JRadioButton 等。

2.1顶层容器介绍
| # | 组件 | 描述 | 
| 1 | JFrame | 一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器) | 
| 2 | JDialog | 对话框 | 
2.2中间容器
| # | 组件 | 描述 | 
| 1 | JPanel (相当于div) | 一般轻量级面板容器组件(作为JFrame中间容器) | 
| 2 | JScrollPane | 带滚动条的,可以水平和垂直滚动的面板组件 | 
| 3 | JSplitPane | 分隔面板 | 
| 4 | JTabbedPane | 选项卡面板 | 
| 5 | JLayeredPane | 层级面板 | 
2.3基本组件
| # | 组件 | 描述 | 
| 1 | JLabel | 标签 | 
| 2 | JButton | 按钮 | 
| 3 | JRadioButton | 单选按钮 | 
| 4 | JCheckBox | 复选框 | 
| 5 | JToggleButton | 开关按钮 | 
| 6 | JTextField | 文本框 | 
| 7 | JPasswordField | 密码框 | 
| 8 | JTextArea | 文本区域 | 
| 9 | JComboBox | 下拉列表框 | 
| 10 | JList | 列表 | 
| 11 | JProgressBar | 进度条 | 
| 12 | JSlider | 滑块 | 
3.API介绍
3.1Jframe组件
| JFrame frame = new JFrame("HelloWorldSwing"); | // 创建及设置窗口 | 
| frame.setDefaultLookAndFeelDecorated(true); | // 确保一个漂亮的外观风格 | 
| frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | 设置默认的关闭窗口 | 
| frame.pack(); | // 显示窗口 | 
| frame.setVisible(true); | //这个最好放在最后,不然会出现视图看不到的情况 | 
| frame.setBounds(600, 300, 500, 400); | 设置窗口的x,y位置,窗口大小x,y. | 
| frame.add(panel) | 添加panel面板到容器 | 
| frmIpa.getContentPane().add(panel, BorderLayout.NORTH); | 添加面板到主窗口,布局在北面 | 
| frmIpa.getContentPane().add(scrollPane, BorderLayout.CENTER); | 添加可滚动面板到主窗口,布局在中间 | 
3.2Panel组件
Jpanel
| JPanel panel = new JPanel(); | 创建面板容器 | 
| panel.add(button); | 添加按钮到面板 | 
JOptionPane
| JOptionPane.showMessageDialog(panel3, "没有选中任何文件", "提示", JOptionPane.WARNING_MESSAGE); | 弹出提示框到panel容器 | 
JScrollPane
| JScrollPane scrollPane = new JScrollPane(); | 创建可滚动面板 | 
| scrollPane.setViewportView(textArea); | 设置面板内容 | 
3.3功能组件
JLabel
| JLabel label = new JLabel("Hello World"); | 添加标签 | 
Jbutton
| JButton button = new JButton("选择文件"); | 创建按钮 | 
| button.addActionListener(new ActionListener() {} | 添加操作按钮后的事件监听器 | 
JFileChooser
| jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES ); | // 设置文件对话框 | 
| jfc.showSaveDialog(frmIpa); | // 显示打开的文件对话框 | 
| jfc.getSelectedFile(); | // 获取选择器选择的文件 | 
JTextArea
| JTextArea textArea = new JTextArea(); | 创建文本区域 | 
| textArea.setText(content); | 设置内容 | 
4.案例代码
这个UI是用来读取ipa文件info.plist中的信息,有需要的朋友可以去下面链接看看
https://blog.csdn.net/qq_42035966/article/details/82086462
4.1UI介绍
主窗口Jframe,
Jframe添加2个Jpanel面板,
北面Jpanel添加JButton,JButton打开JFileChooser文件对话框。
中间JScrollPane添加JTextArea文本区域,文本区域按各自业务逻辑来处理。

4.2代码
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class IpaUI {
	public static JFrame frmIpa;
	public JTextArea textArea;
	public IpaUI() {
		// 窗口框架
		frmIpa = new JFrame();
		frmIpa.setTitle("ipa工具类");
		frmIpa.setBounds(600, 300, 500, 400);
		frmIpa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 面板1
		JPanel panel = new JPanel();
		frmIpa.getContentPane().add(panel, BorderLayout.NORTH);
		JButton button = new JButton("选择文件");
		// 监听button的选择路径
		button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// 显示打开的文件对话框
				JFileChooser jfc = new JFileChooser();
				jfc.showSaveDialog(frmIpa);
				try {
					// 使用文件类获取选择器选择的文件
					File file = jfc.getSelectedFile();//
					//这里是我的业务需求,各位不必照抄
//					String content = IpaService.getIpaInfoMap(file.toString());
//					textArea.setText(content);
				} catch (Exception e2) {
					JPanel panel3 = new JPanel();
					JOptionPane.showMessageDialog(panel3, "没有选中任何文件", "提示", JOptionPane.WARNING_MESSAGE);
				}
			}
		});
		panel.add(button);
		// 可滚动面板
		JScrollPane scrollPane = new JScrollPane();
		frmIpa.getContentPane().add(scrollPane, BorderLayout.CENTER);
		textArea = new JTextArea();
		scrollPane.setViewportView(textArea);
		//这个最好放在最后,否则会出现视图问题。
		frmIpa.setVisible(true);
	}
}
5.插件介绍WindowBuilder
总算骗大家看完文章,其实最方便的方法是用插件制作,当然大家先了解完代码原理是最好的哈哈。eclispe安装windowbuilder有两种方式,一种是离线安装,一种是在线安装。
5.1搜索WindowBuilder
找到http://www.eclipse.org/windowbuilder/download.php

根据自己的eclipse版本选择,因为我的是4.8版本了,所以只能在线安装。
5.2.在eclipse的中安装
(1)选择Help - Eclipse MarketPlace

(2) 在商店中搜索windowbuilder ,会出现WindowBuilder插件

(3)一路下一步,进行安装,等待安装结束重启eclipse即可。
5.3WindowBuilder插件的使用
(1)在Eclipe菜单中File - New -Other ,选中WindowBuilder - Swing Designer - JFrame。

(2)打开文件,点击左下角的Design进入视图模式,左边对应代码模式
左上是整个视图结构,左下是单个结构的属性,可以在这里修改窗口的一些属性,
中间是整个swing的界面按钮,前面第二点介绍过的,这里就不说了,
右边就是视图了,可以点击按钮往视图里面添加,如下图。

本文来源于互联网:Java-GUI快速入门
Hits: 121

 
			
