目录
1.GUI的介绍
1.1GUI概述
1.2Java提供了三个主要包做GUI开发:
2.Swing组件
2.1顶层容器介绍
2.2中间容器
2.3基本组件
3.API介绍
3.1Jframe组件
3.2Panel组件
3.3功能组件
4.案例代码
4.1UI介绍
4.2代码
5.插件介绍WindowBuilder
5.1搜索WindowBuilder
5.2.在eclipse的中安装
5.3WindowBuilder插件的使用
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/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/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快速入门
发布评论