Java Swing(一)Swing初识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/l1336037686/article/details/85466405

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);
	}

}

运行效果:

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/l1336037686/article/details/85466405