Java Swing 基础组件详解 [论文投稿-第四届智能系统、通信与计算机网络]

大会官网:www.icisccn.net

Java Swing 是一个功能强大的 GUI 工具包,提供了丰富的组件库用于构建跨平台的桌面应用程序。本文将详细讲解 Swing 的基础组件,包括其作用、使用方法以及示例代码,帮助你快速掌握 Swing 的核心知识。


一、什么是 Swing 基础组件?

Swing 的基础组件是构建用户界面的核心元素,用于展示信息或与用户进行交互。所有 Swing 的组件都继承自 javax.swing.JComponent 类,这使得它们具有一致的行为和特性。


二、常见的 Swing 基础组件

1. JLabel:标签组件

  • 作用:用于显示一段文本、图像或两者的组合,不能被用户编辑。
  • 常用方法
    • setText(String text):设置标签显示的文本。
    • setIcon(Icon icon):设置标签显示的图标。
    • setHorizontalAlignment(int alignment):设置水平对齐方式。

示例:

import javax.swing.*;public class JLabelExample {public static void main(String[] args) {JFrame frame = new JFrame("JLabel Example");frame.setSize(300, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel label = new JLabel("Hello, Swing!");label.setHorizontalAlignment(SwingConstants.CENTER); // 居中对齐frame.add(label);frame.setVisible(true);}
}

2. JButton:按钮组件

  • 作用:用于触发某些操作(如事件处理)。
  • 常用方法
    • setText(String text):设置按钮上的文本。
    • addActionListener(ActionListener l):为按钮添加点击事件监听器。

示例:

 

3. JTextField:单行文本框

  • 作用:用于输入或显示单行文本。
  • 常用方法
    • getText():获取文本框中的文本。
    • setText(String text):设置文本框的内容。
    • setColumns(int columns):设置文本框的列数(宽度)。

示例:

 


4. JTextArea:多行文本框

  • 作用:用于输入或显示多行文本。
  • 常用方法
    • append(String text):在文本框末尾追加文本。
    • setLineWrap(boolean wrap):设置是否自动换行。
    • setWrapStyleWord(boolean word):设置按单词换行。

示例:

import javax.swing.*;public class JTextAreaExample {public static void main(String[] args) {JFrame frame = new JFrame("JTextArea Example");frame.setSize(400, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JTextArea textArea = new JTextArea(10, 30);textArea.setLineWrap(true); // 自动换行textArea.setWrapStyleWord(true); // 按单词换行JButton button = new JButton("Submit");button.addActionListener(e -> JOptionPane.showMessageDialog(frame, "You entered:\n" + textArea.getText()));frame.add(new JScrollPane(textArea), java.awt.BorderLayout.CENTER); // 添加滚动条frame.add(button, java.awt.BorderLayout.SOUTH);frame.setVisible(true);}
}


5. JCheckBox:复选框

  • 作用:用于启用或禁用选项,可以选择多个复选框。
  • 常用方法
    • isSelected():检查复选框是否被选中。
    • setSelected(boolean selected):设置复选框的初始状态。

示例:

import javax.swing.*;public class JCheckBoxExample {public static void main(String[] args) {JFrame frame = new JFrame("JCheckBox Example");frame.setSize(300, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JCheckBox checkBox1 = new JCheckBox("Option 1");JCheckBox checkBox2 = new JCheckBox("Option 2");JButton button = new JButton("Submit");button.addActionListener(e -> {String result = "Selected: ";if (checkBox1.isSelected()) result += "Option 1 ";if (checkBox2.isSelected()) result += "Option 2 ";JOptionPane.showMessageDialog(frame, result);});frame.setLayout(new java.awt.FlowLayout());frame.add(checkBox1);frame.add(checkBox2);frame.add(button);frame.setVisible(true);}
}

 


6. JRadioButton:单选按钮

  • 作用:用于一组互斥选项。
  • 常用方法
    • isSelected():检查单选按钮是否被选中。
    • 使用 ButtonGroup 将多个按钮分组。

示例:

 
import javax.swing.*;public class JRadioButtonExample {public static void main(String[] args) {JFrame frame = new JFrame("JRadioButton Example");frame.setSize(300, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JRadioButton option1 = new JRadioButton("Option 1");JRadioButton option2 = new JRadioButton("Option 2");ButtonGroup group = new ButtonGroup();group.add(option1);group.add(option2);JButton button = new JButton("Submit");button.addActionListener(e -> {if (option1.isSelected()) {JOptionPane.showMessageDialog(frame, "Option 1 selected");} else if (option2.isSelected()) {JOptionPane.showMessageDialog(frame, "Option 2 selected");}});frame.setLayout(new java.awt.FlowLayout());frame.add(option1);frame.add(option2);frame.add(button);frame.setVisible(true);}
}


三、总结

Swing 的基础组件是构建桌面应用程序的核心。通过合理使用这些组件,可以快速实现用户输入、交互和结果展示功能。

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

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

相关文章

前端小案例——520表白信封

前言:我们在学习完了HTML和CSS之后,就会想着使用这两个东西去做一些小案例,不过又没有什么好的案例让我们去练手,本篇文章就提供里一个案例——520表白信封 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主…

Github 2025-01-25Rust开源项目日报Top10

根据Github Trendings的统计,今日(2025-01-25统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Python项目1Vue项目1JavaScript项目1Deno: 现代JavaScript和TypeScript运行时 创建周期:2118 天开发语言:Rust, JavaScript协议类型…

Arcgis国产化替代:Bigemap Pro正式发布

在数字化时代,数据如同新时代的石油,蕴含着巨大的价值。从商业决策到科研探索,从城市规划到环境监测,海量数据的高效处理、精准分析与直观可视化,已成为各行业突破发展瓶颈、实现转型升级的关键所在。历经十年精心打磨…

MFC结构体数据文件读写实例

程序功能将结构体内数组数据写入文件和读出 2Dlg.h中代码: typedef struct Student {int nNum[1000];float fScore;CString sss;}stu; class CMy2Dlg : public CDialog { // Construction public:CMy2Dlg(CWnd* pParent NULL); // standard constructorstu stu1; ... } 2Dl…

零售业革命:改变行业的顶级物联网用例

mpro5 产品负责人Ruby Whipp表示,技术进步持续重塑零售业,其中物联网(IoT)正引领这一变革潮流。 研究表明,零售商们正在采用物联网解决方案,以提升运营效率并改善顾客体验。这些技术能够监控运营的各个方面…

(一)QT的简介与环境配置WIN11

目录 一、QT的概述 二、QT的下载 三、简单编程 常用快捷键 一、QT的概述 简介 Qt(发音:[kjuːt],类似“cute”)是一个跨平台的开发库,主要用于开发图形用户界面(GUI)应用程序,…

MySQL用户授权、收回权限与查看权限

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

XML实体注入漏洞攻与防

JAVA中的XXE攻防 回显型 无回显型 cve-2014-3574

996引擎 - NPC-添加NPC引擎自带形象

996引擎 - NPC-添加NPC引擎自带形象 截图参考添加NPC参考资料截图参考 添加NPC 编辑NPC表:Envir\DATA\cfg_npclist.xls 1.1. 需要临时隐藏NPC时可以在id前加 // 1.2. 如果NPC朝向不对,可以调整dir 列。(按8方向,上是0顺时针数。我这里给的4) 1.3. 形象代码:NPC代码、怪物…

云计算架构学习之LNMP架构部署、架构拆分、负载均衡-会话保持

一.LNMP架构部署 1.1. LNMP服务搭建 1.磁盘信息 2.内存 3.负载信息 4.Nginx你们公司都用来干嘛 5.文件句柄(文件描述符 打开文件最大数量) 6.你处理过系统中的漏洞吗 SSH漏洞 7.你写过什么shell脚本 8.监控通过什么告警 zabbix 具体监控哪些内容 9.mysql redis查询 你好H…

C语言程序设计:算法程序的灵魂

文章目录 C语言程序设计:算法程序的灵魂算法数据结构程序数据结构算法数值运算算法非数值运算算法 简单的算法举例【例2.1】求12345【例2.2】有50个学生,要求输出成绩在80分以上的学生的学号和成绩 简单的算法举例【例2.3】判定2000—2500年中的每一年是…

Python 在Word中添加、或删除超链接

在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超链接,用户可以轻松地导航到相关信息,从而增强文档的互动性和可读性。本文将介绍如何使用Python在Word中添加超链接、或删除Word文档中的超…

概率论里的特征函数,如何用卷积定理去理解

概率论里的特征函数,如何用卷积定理去理解_哔哩哔哩_bilibili

Unity入门1

安装之后无法获得许可证,可以考虑重装 新建项目 单击空白处生成脚本 双击c#文件 会自动打开vstudio 检查引用 如果没有引用,重开vstu,或者重新加载项目 hierarchy层级 scenes场景 assets资产 inspector督察 icon图标 资源链接&…

如何跨互联网adb连接到远程手机-蓝牙电话集中维护

如何跨互联网adb连接到远程手机-蓝牙电话集中维护 --ADB连接专题 一、前言 随便找一个手机,安装一个App并简单设置一下,就可以跨互联网的ADB连接到这个手机,从而远程操控这个手机做各种操作。你敢相信吗?而这正是本篇想要描述的…

单片机基础模块学习——按键

一、按键原理图 当把跳线帽J5放在右侧,属于独立按键模式(BTN模式),放在左侧为矩阵键盘模式(KBD模式) 整体结构是一端接地,一端接控制引脚 之前提到的都是使用了GPIO-准双向口的输出功能&#x…

第25篇 基于ARM A9处理器用C语言实现中断<一>

Q:怎样理解基于ARM A9处理器用C语言实现中断的过程呢? A:同样以一段使用C语言实现中断的主程序为例介绍,和汇编语言实现中断一样这段代码也使用了定时器中断和按键中断。执行该主程序会在DE1-SoC的红色LED上显示流水灯&#xf…

Baklib如何提升企业的内容管理效率与协作能力

内容概要 在现代企业中,内容管理的有效性直接影响到工作效率、团队协作和创新能力。随着信息量的不断增加,企业亟需一个系统化的平台来高效处理和管理这些内容。Baklib作为一款先进的内容管理平台,通过其丰富的功能和灵活的应用场景&#xf…

【2024年终总结】深圳工作生活评测

距离上次写年终总结已经过了一年半了,这一年半中哪怕经历了很多的事情,但是感觉又没发生什么。想写一些骚话,却总觉得自己无法完全表达,便也就这样,静静地记录下这一段时光。 现在是2025年,春节前的时光&am…

【算法】分治

分治 1.逆序对2.求第 k 小的数3.最大子段和4.地毯填补问题 分治,字面上的解释是「分而治之」,就是把一个复杂的问题分成两个或更多的相同的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 1.逆序对 P…