Java Swing(一)Swing初识

Swing初识

参考资料
[1]王鹏,何昀峰.JavaSwing图形界面开发与案例详解[M].北京:清华大学出版社,2008:407.

1. 什么是Java Swing

  • Swing 是一个为Java设计的GUI工具包。
  • Swing是JAVA基础类的一部分。
  • Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。
  • Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。

2. Java Swing的结构

在这里插入图片描述

在javax.swing包中Swing类型一共有三种:顶层组件,中间组件,基本组件

在这里插入图片描述

  • 顶层组件:JFrame,JApplet,JDialog,JWindow

他是可以独立显示的组件,是一种Window组件

  • 中间容器类:JPanel,JScrollPane,JSplitPane,JToolBar

充当载体不能独立显示的组件。

  • 特殊中间容器类:JInternalFrame,JLayeredPane,JRootPane

具有特殊功能的载体

  • 基本组件类:JButton,JComboBox,JList,JMenu,JSlider,JTextField

依托在中间容器上才能显示的组件,不能独立存在

3. Java Swing HelloWorld

public class HelloWorld extends JFrame {
	private JPanel contentPane;

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					HelloWorld frame = new HelloWorld();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public HelloWorld() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		//创建一个中间容器面板JPanel
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new FlowLayout());
		setContentPane(contentPane);
		
		//添加一个按钮
		JButton jButton = new JButton("这是一个按钮");
		contentPane.add(jButton);
	}

}

运行结果:

在这里插入图片描述

4. 使用IDE开发Java Swing

开发工具可以选择:

  • Eclipse

在这里插入图片描述

  • IDEA

在这里插入图片描述

5. Eclipse可视化开发插件WindowBuilder

WindowBuilder是一个Eclipse的可视化开发插件,它支持像Csharp一样使用拖拽方式开发GUI应用。

安装方式

在这里插入图片描述

搜索WindowBuilder然后安装即可

在这里插入图片描述

安装完成:

在这里插入图片描述

右键 -> new -> Other -> 新建一个JFrame

在这里插入图片描述

创建完成:

在这里插入图片描述

在这里插入图片描述

6. Java Swing的组件基础

在这里插入图片描述

6.1 Window类

  • JFrame:用于设计类似于Windows系统中窗口的应用程序

  • JDialog:用于设计对话框

  • JApplet:用于设计嵌入网页的小程序

顶层容器是所有组件的载体,是其能显示的必须的基础,每一个顶层容器同时包含有一个菜单组件和一个内容面板,以JFrame为例:

在这里插入图片描述

6.2 JComponet类

Swing组件不能直接添加到顶层容器中,他必须添加到一个与顶层容器相关联的面板中,也就是一个中间容器中。

6.2.1 JComponent类的子类

子类名称说明
JButton按钮
JTree
JComboBox下拉选
JCheckBox多选框
JFileChooser文件选择器
JInternalFrame内部窗体
JLabel文本标签
JMenu菜单
JMenuBar菜单条
JPanel面板
JPasswordField密码框
JPopupMenu弹出式菜单
JProgressBar进度条
JScrollBar滚动条
JTextArea文本域
JTable表格
JSplitPane拆分窗格
JToolTip工具提示
JToolBar工具条
JTexPane文本窗格
JRadioButton单选框
JScrollPane滚动窗格
JSlider滚动条

6.2.2 JComponent的主要功能特性

在这里插入图片描述

例子:

  1. 工具提示:
public class Demo extends JFrame {

	private JPanel contentPane;

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Demo frame = new Demo();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public Demo() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));

		JButton button = new JButton("这是一个按钮");
		button.setToolTipText("这是按钮1..."); //设置提示
		contentPane.add(button);
	}

}

运行效果:

当把鼠标移动到按钮旁边时,会显示提示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值