打造酷炫风格的Swing界面(2)

2024-04-27 10:58

本文主要是介绍打造酷炫风格的Swing界面(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在上一篇文章中,我们定制了不能拖放界面大小的窗口,但是很多时候,我们都必须能够实现窗口拖拉,但是图片的大小已经固定了,怎么办了?


 

能拖拉的窗口大小

 

在播放器的歌词窗口的窗口时可以拖拉大小的,如图1:

 

图1 拖拉的歌词窗口:

 


 

 

打造能拖拉的定制窗口

 

首先,我们应该想到无论窗口怎么拖拉大小,起四周的四个角的大小是不会变化的,我们把四个角的图片以窗口大小为变量定位在窗口的四个位置,图片素材如下图2;

 

图2:四个角的素材

    

 

 

 

在拖拉的过程中,改变大小的分别是四周的边距,我们可以根据窗口的大小来动态的填充四周的边距;图片素材如图3;

 

图3:四边距的素材

 

        

如下一节的文章中那样,我们扩展一个Border,把上面的图片依次的画上去;代码清单如下:

 

代码清单1:

 

 

其实,在处理剩下的那一个不足以将背景图片铺开的空间的时候,我们在图片单一的情况,事实上另一种处理方式是把图片拉伸开来,如下代码:

 

 

只不过这种方式会再拖拉的时候出现空白的不连贯,原因在于在图片渲染的时候,把内存中的同一张图片重复的绘制要比把一张图片拉伸显示的效率要高得多;

 

接下来,我们就是要在这个没有边框渲染的窗口上实现自己的拖拉大小的功能,当鼠标分别放在左上角,顶部,右上角,右边距,右下角,底部,左下角,左边距八个方位的时候,如下图4;

 

图4:八个方向

 

分别显示八个不同的鼠标的拖拉样式,并且在鼠标按下的时候,记录下初始位置和拖拉方向,在鼠标移动的时候改变窗口大小,在鼠标松开的时候复位标志变量;代码清单2是用于计算这个八个矩形;

 

代码清单2,计算八矩形位置:

 

 

  下面是当鼠标分别处于这8个矩形的时候分别应该显示的鼠标样式和记录下来的状态:

 

代码清单3:

 

 

 

 

 

下面则是根据鼠标是否在这个把8个矩形中来设定状态和鼠标样式;

 

代码清单4:

 

 

当鼠标按下的时候:

 

代码清单5:

 

 

当鼠标移动的时候:

 

代码清单6:

 

 

 

当选择了拖拉下面的边框的时候:

 

代码清单7:

 

 

当选择拖拉左边的边框的时候,这个时候必须保证右边的边的位置是固定不变的:

 

 

代码清单8:

 

 


总结

 

利用了角度拉伸不变,而填充被拉伸的空间来实现一个可拉伸的图片背景窗口,我们可以实现很多绚丽的窗口;

这篇关于打造酷炫风格的Swing界面(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

用Java打造简易计算器的实现步骤

《用Java打造简易计算器的实现步骤》:本文主要介绍如何设计和实现一个简单的Java命令行计算器程序,该程序能够执行基本的数学运算(加、减、乘、除),文中通过代码介绍的非常详细,需要的朋友可以参考... 目录目标:一、项目概述与功能规划二、代码实现步骤三、测试与优化四、总结与收获总结目标:简单计算器,设计

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用