目录
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快速入门
点击数:115