Swing程序设计(7)JPane面板,滑动面板

news2025/2/27 20:09:11

文章目录

  • 前言
  • 一、JPane面板,滑动面板是什么?
  • 二、实操展示
    • 1.JPane面板
    • 2.JScrollPane面板
  • 总结

前言

        该篇博客介绍Java的Swing程序中JPane面板以及,滑动面板的使用。面板的使用,各个组件在不同的面板上被不同地摆放,让插件们有了各自明确的划分职责。而滑动面板让无法展示完整的图像或者隐藏着的插件可以通过滚动条显示。


一、JPane面板,滑动面板是什么?

        JPane面板:是一种容器可以聚集一些组件来布局,也可以用于划分区域,区分各个组件。

        语法:  JPane jp =  new JPane();

        //创建了一个JPane面板对象

        JScrollPane面板:是带滚动条的面板适用于当遇到在一个较小的容器显示一个较大部分的内容。

        语法: JScrollPane jsp = new JScrollPane();

        //创建了一个JScrollPane滑动面板对象

二、实操展示

1.JPane面板

        源代码:

        在项目中创建LabelDemo类,该类继承JFrame类成为窗体组件,在该类中创建三个面板组件,并将它们添加到窗体中,如下:

import java.awt.*;
import javax.swing.*;
//导入swing的包

public class LabelDemo extends JFrame{
//继承JFrame窗体类

    public LabelDemo(){
        //创建构造方法,搭建窗体

        setBounds(100,100,1000,1000);
        //设置窗体大小,生成位置

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置关闭方式

        Container c = getContentPane();
        //获取容器

        c.setLayout(new GridLayout());
        //设置容器的布局格式

        JPanel p1 = new JPanel(new GridLayout(1,3,30,30));
        JPanel p2 = new JPanel(new GridLayout(1, 2,10,10));
        JPanel p3 = new JPanel(new GridLayout(2, 1,10,10));
        //创建三个JPane面板,并设置布局格式为网格布局

        p1.add(new JButton("角色"));
        p1.add(new JButton("武器"));
        p1.add(new JButton("装备"));
        
        p2.add(new JButton("充值"));
        p2.add(new JButton("商城"));
 
        p3.add(new JButton("副本"));
        p3.add(new JButton("抽卡"));

        //添加组件,展示效果

        c.add(p1);
        c.add(p2);
        c.add(p3);
        
        setVisible(true);
        //窗体可见
    }
    
    public static void main(String[] args) {
        new LabelDemo();
    }
}

        运行结果:

 

        注释:该代码段中添加了三个面板,第一个面板中添加了三个按钮,中间的间距最大;第二个面板添加了两个按钮,并且没有那么大的间距;第三个面板同样添加了两个按钮,但是为两行一列式的摆放。这就是这三个面板上组件的摆放,用于用户与软件的界面交互。 

2.JScrollPane面板

        源代码:

         在项目里创建LabelDemo类,该类继承JFrame类成为窗体组件,在类中创建JScrollPane滚动面板组件,该滚动面板组件中包含JTextArea文本域组件,如下:

import java.awt.*;
import javax.swing.*;
//导入swing的包

public class LabelDemo extends JFrame{
//继承JFrame窗体类

    public LabelDemo(){
        //创建构造方法,搭建窗体

        setBounds(100,100,100,100);
        //设置窗体大小,生成位置

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置关闭方式

        Container c = getContentPane();
        //获取容器

        JTextArea jta = new JTextArea(200,500);
        //创建文本域

        JScrollPane sp = new JScrollPane(jta);
        //创建滑动条对象,添加于文本域对象(两个组件绑定在一起了)

        c.add(sp);
        //容器中添加该滑动条对象

        setVisible(true);
        //窗体可见
    }
    
    public static void main(String[] args) {
        new LabelDemo();
    }
}

        运行结果:

 

        注释:创建了一个宽为200,高为500的文本域,在文本域外边,外设了一个滑动面板,两个组件绑定在一块,滑动面板添加到容器中即可,可实现超出文本域范围,输入文字可被查找(通过拉动滑块)。 


总结

        以上就是今天写的内容,本文仅简单介绍了JPane面板和JScrollPane滑动面板的使用,而JPane面板和JScrollPane滑动面板在如今有着广泛的应用和使用。若有补充或批评的地方,欢迎在评论区指正,我会及时回答。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1281555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB Simulink +STM32硬件在环 (HIL)实现例程测试

MATLAB Simulink STM32硬件在环 (HIL)实现例程测试 📍相关篇《STM32CubeMxMATLAB Simulink点灯程序》✨本例程没有使用到STM32CubeMX来创建工程(在Simulink 中不是选择的STM32xxxbased类型的)。 🔖STM32xxx…

Github无法打开

文章目录 一、问题二、解决2.1、科学上网(使用中)2.2、使用代理(不稳定)2.3、修改hosts(得更新)2.3.1、找到hosts文件2.3.2、复制hosts文件2.3.3、添加记录2.3.4、替换原来的hosts文件2.3.5、成功访问Githu…

W2311294-万宾科技可燃气体监测仪怎么进行数据监测

万宾科技可燃气体监测仪怎么进行数据监测 燃气是现代城市之中重要的能源,它已经渗透到城市生活的方方面面,对燃气管网的管理也在考验着政府人员的工作能力。燃气管网的安全运行和城市的安全和人民的生活直接挂钩。为了及时掌握燃气管网的运行状态&#x…

2023年GopherChina大会-核心PPT资料下载

一、峰会简介 自 Go 语言诞生以来,中国便是其应用最早和最广的国家之一,根据 Jetbrains 在 2021 年初做的调查报告,总体来说目前大概有 110 万专业的开发者 选择 Go 作为其主要开发语言。就其全球分布而言, 居住在亚洲的开发者最多&#xff…

了解大模型 RAG (Retrieval-Augmented Generation):大模型外挂知识库 (检索增强技术)

本心、输入输出、结果 文章目录 了解大模型 RAG (Retrieval-Augmented Generation):大模型外挂知识库 (检索增强技术)前言什么是检索增强技术 RAG (Retrieval-Augmented Generation)检索增强技术…

RocketMQ领域模型详解

1、主题(Topic) 1.1、定义​ 主题是 Apache RocketMQ 中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息。 主题的作用主要如下: 定义数据的分类隔离: 在 Apache RocketMQ 的方案设计中,建议将不同…

【STM32】STM32学习笔记-STM32简介(02)

00. 目录 文章目录 00. 目录01. STM32简介1.1 STM32是什么1.2 STM32应用领域1.3 STM32命名规则1.4 STM32选型 02. ARM简介2.1 ARM是什么2.2 ARM系列 03. STM32开发板3.1 MCU简介3.2 STM32开发板3.3 STM32硬件资源 04. STM32系统架构05. STM32引脚定义06. STM32启动配置07. STM3…

python爬虫AES魔改案例:某音乐素材下载网

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关 一、找出需要加密的参数 js运行 atob(‘aHR0cHM6Ly93d3cuYWlnZWkuY29tL3NvdW5kL2NsYXNzLw’) 拿到网址,F12打开调…

类 —— 多态、抽象类

多态 通常说的多态,是指发生在类之间的多态。即相同的代码,实现不同的功能。 函数重载 —— 静态多态/编译时多态。 类之间的多态 —— 动态多态/运行时多态。 前提 继承、虚函数、函数重写。 函数重写(override) 在子类中重…

正则表达式从放弃到入门(2):grep命令详解

正则表达式从放弃到入门(2):grep命令详解 总结 本博文转载自 这是一篇”正则表达式”扫盲贴,如果你还不理解什么是正则表达式,看这篇文章就对了。 如果你是一个新手,请从头阅读这篇文章,如果你…

设计一门编程语言:你认为最重要的一定要有的特性会是哪些?

当我们站在软件工程师的角度来考虑设计一门编程语言时,我们需要关注那些能够提升代码质量、开发效率和程序可维护性的特性。 以下是我认为最重要的几个特性: 1、简洁而明确的语法:语法是程序员与编程语言交互的基础。简洁明了的语法可以降低…

Pandas实战:电商平台用户分析

数据分析 1.行为概况 首先,我们要对用户的行为类型有一定的理解,了解每个行为所代表的含义。 浏览:作为用户与商品接触的第一个行为,它的数量级与其他行为类型相比而言是非常庞大的,因为: 用户购买之前需…

JavaSE基础50题:7. 写一个方法返回参数二进制中1的个数(3种方法!)

文章目录 概述方法1方法2方法3 概述 返回参数中二进制中1的个数。 如: 15(十进制) —— 0000 1111(二进制) —— 4个1 ①我们把二进制的数字的每一位都&1,其中:1&11 、0&10 ②用无符号右移(>>>)来…

第一百八十八回 分享三个使用TextField的细节

文章目录 1. 概念介绍2. 使用方法2.1 修改组件的填充颜色2.2 修改组件的高度2.3 给组件添加圆角3. 示例代码4. 内容总结我们在上一章回中介绍了"DropdownButton组件"相关的内容,本章回中将介绍**TextField组件的细节.**闲话休提,让我们一起Talk Flutter吧。 1. 概念…

栈的链式存储(详解)

栈的链式存储 栈的链式存储是通过链表来实现的,每个节点包含一个元素和一个指向下一个节点的指针。链式存储的栈不需要提前分配内存空间,可以动态地增加或减少元素。 在链式存储中,栈顶元素通常是链表的头节点,栈底元素是链表的…

Flume 安装部署

文章目录 Flume 概述Flume 安装部署官方网址下载安装配置文件启动 Flume 进程启动报错输出文件乱码问题 Flume 概述 Flume(Apache Flume)是一个开源的分布式日志收集、聚合和传输系统,属于 Apache 软件基金会的项目之一。其主要目标是简化大…

使用OpenMVS重建模型

1、数据格式转换 首先将生成的稠密点云以及图片信息转换成openmvs支持的.mvs文件。在openmvs_sample中的bin文件内打开终端 作者:舞曲的小水瓶 https://www.bilibili.com/read/cv25019877/ 出处:bilibili interfaceCOLMAP.exe -i D:\desktop\test\toy\…

Proteus8.16仿真软件安装图文教程(Proteus 8 Professional)

Proteus8.16 🔧软件安装包下载链接:🔧视频教程🔧1 安装软件解压🔧2 安装🔧3 破解🔧4 汉化 🔧软件安装包下载链接: Proteus8.16软件下载链接 1、本文关于Proteus8.16 SP…

网工学习5 交换机端口相关配置

交换机的接口属性默认支待一般网络环境,一般情况下是不需要对其接口进行设置的。在某些情况下需 要对其端口属性进行配置时,配置的对象主要有接口隔离、速率、双工等信息。 5.1 接口隔离设置 > 配置接口 GE0/0/1 和 GE0/0/2 的接口隔离功能&#xf…

dart语言多线程遇到的问题:Isolate.spawnUri(),在真机调试中无法生成隔离

报错原因 [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: IsolateSpawnException: Unable to spawn isolate: Unsupported isolate URI: 未处理的异常:IsolateSpawnException:无法生成隔离:不支持隔离 URI&…