Swing入门

news/2024/12/17 10:18:36/文章来源:https://www.cnblogs.com/xkxf/p/18608778

https://docs.oracle.com/javase/tutorial/uiswing/index.html

About the JFC and Swing

JFC=Java Foundation Classes=java基础类

用途:1用于构建图形用户界面;2给Java应用添加图形和交互功能

为什么叫JFC:MFC=Microsoft Foundation Class Library

JFC包含下表特性:

Feature Description
Swing GUI Components 包括从按钮、分割窗格到表格等所有内容。许多组件都支持排序、打印、拖放等功能,以上仅是其中的一些特点。
Pluggable Look-and-Feel Support Swing 应用程序的外观和操作方式是可插件化的,允许用户选择不同的界面风格。例如,同一个程序可以使用 Java 风格或 Windows 风格。此外,Java 平台还支持 GTK+ 风格,使得数百种现有的界面风格可以被 Swing 程序使用。还有更多的界面风格包可以从不同的来源获得。
Accessibility API 使辅助技术(如屏幕阅读器和盲文显示器)能够从用户界面获取信息。
Java 2D API 使开发者能够轻松地在应用程序和小程序中加入高质量的 2D 图形、文本和图像。Java 2D 包括了丰富的 API,用于生成并将高质量的输出发送到打印设备。
Internationalization 允许开发者构建能够与全球用户以他们自己的语言和文化习惯进行互动的应用程序。通过输入法框架,开发者可以构建接受使用成千上万不同字符的语言(如日语、中文或韩语)文本的应用程序。

本教程专注于 Swing 组件。我们将帮助你选择适合你图形用户界面(GUI)的组件,告诉你如何使用它们,并提供你需要的背景信息,以便你能够有效地使用它们。我们还将讨论其他与 Swing 组件相关的特性

Which Swing Packages Should I Use?

Swing API功能强大、灵活且庞大。Swing API有18个公共包:

javax.accessibility javax.swing.plaf javax.swing.text
javax.swing javax.swing.plaf.basic javax.swing.text.html
javax.swing.border javax.swing.plaf.metal javax.swing.text.html.parser
javax.swing.colorchooser javax.swing.plaf.multi javax.swing.text.rtf
javax.swing.event javax.swing.plaf.synth javax.swing.tree
javax.swing.filechooser javax.swing.table javax.swing.undo

幸运的是,大多数程序只使用 API 的一小部分。本教程为你整理了 API,提供了常见代码示例,并指引你使用可能需要的方法和类。本教程中的大部分代码仅使用一个或两个 Swing 包:

  • javax.swing
  • javax.swing.event (不总是需要)

Compiling and Running Swing Programs

package start;import javax.swing.*;public class HelloWorldSwing {/*** Create the GUI and show it.  For thread safety,* this method should be invoked from the* event-dispatching thread.*/private static void createAndShowGUI() {//Create and set up the window.JFrame frame = new JFrame("HelloWorldSwing");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Add the ubiquitous "Hello World" label.JLabel label = new JLabel("Hello World");frame.getContentPane().add(label);//Display the window.frame.pack();frame.setVisible(true);}public static void main(String[] args) {//Schedule a job for the event-dispatching thread://creating and showing this application's GUI.javax.swing.SwingUtilities.invokeLater(new Runnable() {public void run() {createAndShowGUI();}});}
}

注释:

frame指一种基本的形状或结构(structure),尤其是勾勒或围绕门窗的形状或结构。如果你用力关上卧室的门,整个门框(the whole frame)可能会摇晃。

pane:窗格;一块玻璃,尤其是适合窗框(a window frame)的玻璃。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用python批量转换.doc文件为.docx文件

需要用到的库: pywin32、os实现效果: 把文件夹下的文件1.doc、2.doc、3.doc 转化成1.docx、2.docx、3.docx,保存到output文件夹下。 代码运行前: 代码运行后: 实现代码:# 批量把".doc"文件另存在".docx"文件import osfrom win32com import clientde…

数据分布检验利器:通过Q-Q图进行可视化分布诊断、异常检测与预处理优化

在机器学习和数据分析中,我们经常需要验证数据是否符合某种特定的分布(如正态分布)。这种验证对于选择合适的统计方法和机器学习模型至关重要。例如许多统计检验和机器学习算法都假设数据服从正态分布。如果这个假设不成立,我们可能需要对数据进行转换或选择其他更适合的方…

修改jar包中的class文件,重新打包成jar(原MANIFEST.MF保持不变)

不使用ide(如idea,eclipse)版 修改jar包中的class文件,重新打包成jar(原MANIFEST.MF保持不变)1:把待修改的jar包放入jd-gui,找到待修改的class文件 2:找到对应的文件ctrl+s保存,把待调整的.class转为.java 3:修改java文件中的对应代码 4.把需要的jar包放在同一个目…

Bootstrap多级下拉菜单插件

bootstrap-submenu是一款在原生bootstrap Dropdowns组件的基础上进行扩展,可以生成多级子菜单的多级下拉菜单插件。 原生的bootstrap下拉菜单只有一层,通过bootstrap-submenu插件,可以生成多级子菜单。在线预览 下载安装 可以通过npm和bower来安装bootstrap-submenu插件。$ …

Shenzi pg walkthrough Intermediate window

nmap └─# nmap -p- -A -sS -T5 192.168.218.55 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-16 23:45 UTC Stats: 0:00:02 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan SYN Stealth Scan Timing: About 0.97% done Stats: 0:00:03 elapse…

适配信创环境的国产FTP替代软件,让数据传输更环保高效!

文件传输协议(FTP),诞生于1971年,自20世纪70年代发明以来,FTP已成为传输大文件的不二之选。内置有操作系统的 FTP 可提供一个相对简便、看似免费的文件交换方法,因此得到广泛使用。但随着技术的发展和企业对于文件传输的需求日益增长,传统FTP协议由于其在安全性、传输效…

跨域文件管控新方案,让数据管理变得简单而高效!

随着经济的快速发展,越来越多的企业规模不断扩大,并在异国、异地设立分支机构。这些分支机构与企业总部之间需要进行频繁的文件传输和数据交换,以支持企业的日常运营和决策。由于分支机构可能位于不同的地理位置、拥有不同的网络环境和组织架构,因此跨域文件管控传输成为了…

服务器性能测试利器之sysbench

目录前言 特征 安装 测试 回到顶部 前言 sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。sysbench是基于LuaJIT的可编写脚本的多线程基准测试工具。sysbench附带以下捆绑的基准测试:oltp_*.lua:类似…

知识付费源码-知识付费平台全面升级

来自www.tuzhi.ltd在当今社会快速发展的背景下,教育和软件行业正经历一次巨大的革新。随着数字化转型浪潮推动下,在线教育和知识付费模式的广泛应用已经成为推动教育资源分配均衡和个性化学习需求满足的重要力量。其中,知识付费在线教育系统的崛起不仅优化了传统教学的组织和…

双语对照的 PDF 翻译工具「GitHub 热点速览」

在 OpenAI 举办的「12天12场」发布会上,ChatGPT 的多项新功能正式亮相,包括 GPT-o1 正式版和 ChatGPT Pro(200 美元/月)、强化微调(Reinforcement Fine-Tuning)、Sora(视频生成)、增强版 Canvas(支持多模态创作与 Python 代码执行)、ChatGPT 扩展功能、ChatGPT Visio…

使用scrcpy实现无线投屏与反控手机

使用scrcpy实现无线投屏与反控手机 引言 在日常生活中,我们常常需要将手机屏幕投射到电脑上进行演示或操作。今天,我将为大家介绍一款开源工具——scrcpy,它可以帮助你轻松实现这一功能。 什么是scrcpy? scrcpy是一个开源项目,托管在GitHub上(项目地址:scrcpy GitHub)。…

manim边学边做--渐变生长

本篇介绍Manim中的渐变生长类的动画。 这类动画的特点是可以清晰地展示图形的生成过程、物体的运动变化,帮助我们更好地理解抽象概念和复杂结构。 渐变生长类的动画的主要有:GrowArrow:让箭头从起始点按设定路径(如直线或弧线)和速度动态生长 GrowFromCenter:使对象以自身…