java swing图形化界面_javagui界面设计

java swing图形化界面_javagui界面设计JavaSwingGUI图形界面窗口开发基础教程,本教程将系统性地详细介绍Swing开发中常用的一些组件、布局管理器等相关知识技术,并且每章节都将通过代码实例展示实际应用。Swing是Java为图形界面应用开发提供的一组工具包,是Java基础类的一部分。Swing包含了构建图形界面(GUI)的各种组件,如:窗口、标签、按钮、文本框等。Swing提供了许多比AWT更好的屏幕显示元素,使用纯Java实现,能够更好的兼容跨平台运行。JavaSwing图形界面开发目录

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文链接: http://blog.csdn.net/xietansheng/article/details/72814531

Java Swing GUI 图形界面窗口开发基础教程,本教程将系统性地详细介绍 Java Swing 开发中常用的一些组件、布局管理器等相关知识技术,并且每章节都将通过代码实例展示实际应用。

教程总目录: Java Swing 图形界面开发(目录)

1. Swing简介

Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。

Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。

Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。

为了和 AWT 组件区分,Swing 组件在javax.swing.*包下,类名均以 J 开头,例如: JFrame、JLabel、JButton等。

2. Swing组件

一个 Java 的图形界面,由各种不同类型的“元素”组成,例如: 窗口、菜单栏、对话框、标签、按钮、文本框等等,这些“元素”统一被称为 组件(Component)。

组件按照不同的功能,可分为 顶层容器、中间容器、基本组件。一个简单窗口的组成,如下层级结构所示:

  • 顶层容器
    • 菜单栏
    • 中间容器
      • 基本组件
      • 基本组件

组件类型的继承关系:

  • 顶层容器 属于窗口类组件,继承自java.awt.Window;
  • 中间容器 和 基本组件 继承自javax.swing.JComponent。

2.1 顶层容器

顶层容器属于窗口类组件,可以独立显示,一个图形界面至少需要一个窗口,例如:

# 组件 描述
1 JFrame 一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器)
2 JDialog 对话框

2.2 中间容器

中间容器充当基本组件的载体,不可独立显示。中间容器可以添加若干基本组件(也可以嵌套添加中间容器),对容器内的组件进行管理,类似于给各种复杂的组件进行分组管理。最顶层的一个中间容器必须依托在顶层容器(窗口)内。

常用的中间容器(面板):

# 组件 描述
1 JPanel 一般轻量级面板容器组件
2 JScrollPane 带滚动条的,可以水平和垂直滚动的面板组件
3 JSplitPane 分隔面板
4 JTabbedPane 选项卡面板
5 JLayeredPane 层级面板

特殊的中间容器:

# 组件 描述
1 JMenuBar 菜单栏
2 JToolBar 工具栏
3 JPopupMenu 弹出菜单
4 JInternalFrame 内部窗口

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 滑块

选取器组件:

# 组件 描述
1 JFileChooser 文件选取器
2 JColorChooser 颜色选取器

其他较为复杂的基本组件:

# 组件 描述
1 JTable 表格
2 JTree 树

3. 布局管理器

把 Swing 的各种组件(JComponent)添加到面板容器中(JPanel),需要给面板容器指定布局管理器(LayoutManager),明确容器(Container)内的各个组件之间的排列布局方式。

常用的布局管理器:

# 布局管理器 描述
1 FlowLayout 流式布局,按组件加入的顺序,按水平方向排列,排满一行换下一行继续排列。
2 GridLayout 网格布局,把Container按指定行列数分隔出若干网格,每一个网格按顺序放置一个控件。
3 GridBagLayout 网格袋布局,按网格划分Container,每个组件可占用一个或多个网格,可将组件垂直、水平或沿它们的基线对齐。
4 BoxLayout 箱式布局,将Container中的多个组件按 水平 或 垂直 的方式排列。
5 GroupLayout 分组布局,将组件按层次分组(串行 或 并行),分别确定 组件组 在 水平 和 垂直 方向上的位置。
6 CardLayout 卡片布局,将Container中的每个组件看作一张卡片,一次只能显示一张卡片,默认显示第一张卡片。
7 BorderLayout 边界布局,把Container按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。
8 SpringLayout 弹性布局,通过定义组件四条边的坐标位置来实现布局。
9 null 绝对布局,通过设置组件在Container中的坐标位置来放置组件。

4. 代码实例: 一个简单的窗口程序

package com.xiets.swing;

import javax.swing.*;

public class Main { 
   

    public static void main(String[] args) { 
   
        // 1. 创建一个顶层容器(窗口)
        JFrame jf = new JFrame("测试窗口");          // 创建窗口
        jf.setSize(250, 250);                       // 设置窗口大小
        jf.setLocationRelativeTo(null);             // 把窗口位置设置到屏幕中心
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 当点击窗口的关闭按钮时退出程序(没有这一句,程序不会退出)

        // 2. 创建中间容器(面板容器)
        JPanel panel = new JPanel();                // 创建面板容器,使用默认的布局管理器

        // 3. 创建一个基本组件(按钮),并添加到 面板容器 中
        JButton btn = new JButton("测试按钮");
        panel.add(btn);

        // 4. 把 面板容器 作为窗口的内容面板 设置到 窗口
        jf.setContentPane(panel);

        // 5. 显示窗口,前面创建的信息都在内存中,通过 jf.setVisible(true) 把内存中的窗口显示在屏幕上。
        jf.setVisible(true);
    }

}

结果展示:

result.png


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172244.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用LINUX架设FTP服务器

    用LINUX架设FTP服务器第二章用LINUX架设FTP服务器2.1什么是FTP2.2安装Wu-FTP2.3让FTP服务器跑起来2.4配置文件的设置2.5开设只能FTP的帐户2.6设置虚拟FTP主机 2.1什么是FTP:文件传输协议原理互联网文件传输协议(FileTransferProtocol,FTP)标准是在RFC959说明的。该协议定义了一个从远程计算机系统和本地计算机系统之

    2022年7月21日
  • 二进制小数转十进制方法_小数进制转换

    二进制小数转十进制方法_小数进制转换知识点一:一个数的负次方即为这个数的正次方的倒数。方法一、转换分数法参考文章:https://jingyan.baidu.com/article/597a0643614568312b5243c0.html参考文章:https://zhidao.baidu.com/question/1308562360873359899.html举例:将二进制0.1111转换成十进制数二进制…

    2022年9月16日
  • php最新面试题_面试问题汇总

    php最新面试题_面试问题汇总1、酒店预订怎么实现?怎么设计表  你好,我大概的说下我们的业务流程,我们的业务流程是:用户在网站浏览酒店信息,可以根据地区检索出该地区的酒店信息。列表展示酒店的信息由:酒店的名称,酒店图片,酒店位置,评论人数,评论分数以及最低入住价格。用户选中要入住的酒店进入酒店详情页面,查看酒店的介绍以及酒店的房型列表,用户根据他要入住的时间和离店的时间,检索出这个时间段内的所有可选房型(房间数量-当

    2022年8月27日
  • Java安全之反序列化回显研究

    Java安全之反序列化回显研究0x00前言续上文反序列化回显与内存马,继续来看看反序列化回显的方式。上篇文中其实是利用中间件中存储的Request和Response对象来进行回显。但并不止这么

    2021年12月13日
  • ssl原理及应用_ssl的理解

    ssl原理及应用_ssl的理解今天学习网络通信,看到使用ssl(SecureSocketsLayer)进行加密,由于对ssl只是有些概念上的了解,对于具体应用原理、过程和如何使用不慎了解,于是学习了一番,总结如下:1.为什么要使用ssl?确保数据传输的安全性2.用ssl加密传输的实际过程?建立连接时使用非对称加密,而连接完成后在传输数据时使用对称加密(速度快)3.ssl加密方式?有两种方式:单

    2022年10月31日
  • pythoncharm解释器_pycharm自带python

    pythoncharm解释器_pycharm自带python在运行新项目中选择解释器,发现之前的解释器invalid:解决方法:1.选addsysteminterpreter找到安装python.exe的位置点击OK稍等后完成

    2022年8月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号