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 ✨✨✨想要了解更多内容可以访问我的主…

PyTorch广告点击率预测(CTR)利用深度学习提升广告效果

目录 广告点击率预测问题数据集结构广告点击率预测模型的构建1. 数据集准备2. 构建数据加载器3. 构建深度学习模型4. 训练与评估 总结 广告点击率预测(CTR,Click-Through Rate Prediction)是在线广告领域中的重要任务,它帮助广告平…

【信息系统项目管理师-选择真题】2017上半年综合知识答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7~8题】【第9题】【第10题】【第11题】【第12题】【第13~14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21题】【第22题…

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

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

每日一题--合并二叉树

合并二叉树 问题描述 已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:如果节点存在于两棵树中,则将节点值相加;如果某个节点在一棵树中不存在,则直接使用另一棵树的节点值。例如: 两颗二叉树如下&a…

云计算的概念与特点:开启数字化时代的新篇章

在当今数字化时代,云计算(Cloud Computing)已经成为推动技术创新和业务转型的核心力量。无论是大型企业、中小型企业,还是个人用户,云计算都为其提供了高效、灵活和经济的解决方案。本文将深入探讨云计算的概念及其核心特点,帮助读者全面了解这一革命性技术。 © ivw…

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

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

分布式机器学习中【拓扑】与【通信】的区别和联系

在分布式机器学习中,拓扑和通信是两个重要的概念,它们虽然有一定的关联,但侧重点不同。下面我会逐一解释它们的定义、区别及其联系: 1. 拓扑(Topology): 拓扑指的是系统中不同节点&#xff08…

【fly-iot飞凡物联】(20):2025年总体规划,把物联网整套技术方案和实现并落地,完成项目开发和课程录制。

前言 fly-iot飞凡物联专栏: https://blog.csdn.net/freewebsys/category_12219758.html 1,开源项目地址进行项目开发 https://gitee.com/fly-iot/fly-iot-platform 完成项目开发,接口开发。 把相关内容总结成文档,并录制课程。…

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…

rust 自定义错误(十二)

错误定义: let file_content parse_file("test.txt");if let Err(e) file_content {println!("Error: {:?}", e);}let file_content parse_file2("test.txt");if let Err(e) file_content {match e {ParseFileError::File > …

java+vue项目部署记录

目录 前言 一、java和vue 二、部署记录 1.获取代码 2.运行前端 3.运行后端 三、其他 1.nvm 总结 前言 近期工作需要部署一套javavue前后分离的项目,之前都略有接触,但属于不及皮毛的程度,好在对其他开发语言、html js这些还算熟&am…

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

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

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

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

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

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

spring boot中使用spring-security案例

项目结构 src └── main ├── java │ └── com.example.securitydemo │ ├── RestapiApplication.java │ ├── config │ │ └── SecurityConfig.java │ ├── controller │ │ └── UserController.java │ └── service │ └── CustomUserDetailsS…

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代码、怪物…

mysql create table的用法

在MySQL中创建表的基本语法如下: CREATE TABLE table_name (column1 datatype,column2 datatype,column3 datatype,... );这里是一个例子,假设我们要创建一个名为employees的表,包含以下字段: id:一个整数类型的主键…

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

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