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

devtools/2025/1/30 18:41:45/

大会官网: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):设置水平对齐方式。

示例:

java">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):设置按单词换行。

示例:

java">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):设置复选框的初始状态。

示例:

java">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 将多个按钮分组。

示例:

 
java">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.ppmy.cn/devtools/154673.html

相关文章

深入理解Pytest中的Setup和Teardown

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 对于简单程序而言,使用 Pytest 运行测试直截了当。然而,当你…

【数据结构】动态内存管理函数

动态内存管理 为什么存在动态内存管理动态内存函数的介绍🎊malloc补充:perror函数🎊free🎊calloc🎊realloc 常见动态内存错误对空指针的解引用操作对动态开辟空间的越界访问对非动态开辟内存使用free释放使用free释放一…

关于产品和技术架构的思索

技术架构或者设计应该和产品设计分离,但是又不应该和产品架构独立。 听起来非常的绕并且难以理解。 下面我们用一个例子来解读这两者的关系 产品(族谱图) 如果把人类当作产品,那设计师应该是按照上面设计的(当然是正常的伦理道德)…

WPF基础 | 深入 WPF 事件机制:路由事件与自定义事件处理

WPF基础 | 深入 WPF 事件机制:路由事件与自定义事件处理 一、前言二、WPF 事件基础概念2.1 事件的定义与本质2.2 常见的 WPF 事件类型 三、路由事件3.1 路由事件的概念与原理3.2 路由事件的三个阶段3.3 路由事件的标识与注册3.4 常见的路由事件示例 四、自定义事件处…

docker desktop使用ollama在GPU上运行deepseek r1大模型

一、安装docker 安装WSL打开Hyper V 可以参考:用 Docker 快速安装软件_哔哩哔哩_bilibili 二、拉取ollama镜像 在powershell中运行如下命令,即可拉取最新版本的ollama镜像: docker pull ollama/ollama 如果需要指定版本,可以…

C# 添加、替换、提取、或删除Excel中的图片

在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观。此外,对于已有图片,你有事可能需要更新图片以确保信息的准确性,或者将Excel 中的图片单独保存,用于资料归档、备…

【starrocks学习】之catalog

目录 一、介绍 二、Catalog的分类 三、使用方法 四、简单示例 一、介绍 ‌StarRocks的Catalog功能‌是一种数据目录管理工具,用于同时管理和查询内部和外部数据。StarRocks从2.3版本开始支持Catalog功能,允许用户在一个系统中方便地访问和查询存储在…

状态模式——C++实现

目录 1. 状态模式简介 2. 代码示例 3. 单例状态对象 4. 状态模式与策略模式的辨析 1. 状态模式简介 状态模式是一种行为型模式。 状态模式的定义:状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 通俗的说就是一个对象…