Swing如何使用?几个操作示例教会你!

news/2024/11/25 14:57:12/

以下是四个使用 Swing 组件创建的示例代码:

示例一:JFrame

JFrame 是一个顶级容器,用于创建框架窗口。下面是一个简单的 JFrame 示例:

import javax.swing.JFrame;/*** @author: Ajie* @create: 2023/6/21* @Description:* @FileName: MyDialog* @History:* @自定义内容:*/
public class MyFrame extends JFrame {public MyFrame() { // 构造函数setTitle("My JFrame"); // 设置 JFrame 的标题setSize(400, 400); // 设置 JFrame 的大小setLocationRelativeTo(null); // 将 JFrame 相对于屏幕居中显示setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置 JFrame 的关闭操作setVisible(true); // 显示 JFrame}public static void main(String[] args) { // 主函数new MyFrame(); // 创建一个 MyFrame 对象}
}

这个示例中,我们创建了一个 MyFrame 类继承了 JFrame,并在构造函数中设置了框架的标题,大小,居中位置和关闭操作。最后创建了一个 MyFrame 实例来启动应用程序。

示例图:

 

 

示例二:JPanel

JPanel 是一个常规容器,用于组织 Swing 组件、划分布局等操作。下面是一个简单的 JPanel 示例:

import javax.swing.*;
import java.awt.*;/*** @author: Ajie* @create: 2023/6/21* @Description:* @FileName: MyDialog* @History:* @自定义内容:*/
public class MyPanel extends JPanel {public MyPanel() { // 构造函数// 在 MyPanel 中添加两个 JButtonadd(new JButton("Button 1"));add(new JButton("Button 2"));}public static void main(String[] args) { // 主函数JFrame frame = new JFrame(); // 创建 JFrame 对象frame.setTitle("My JPanel"); // 设置 JFrame 的标题frame.setSize(400, 400); // 设置 JFrame 的大小frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置 JFrame 的关闭操作frame.setLocationRelativeTo(null); // 将 JFrame 居中显示MyPanel panel = new MyPanel(); // 创建 MyPanel 对象frame.add(panel); // 将 MyPanel 对象添加进 JFrameframe.setVisible(true); // 显示 JFrame}
}

这个示例中,我们首先创建了一个 MyPanel 类继承了 JPanel,在构造函数中添加了两个按钮(JButton)。然后在 main 方法中创建了一个 JFrame 实例,并把 MyPanel 实例添加到 JFrame 中。

示例图:

 

示例三:JDialog

JDialog 是一个顶级容器,用于创建对话框窗口。下面是一个简单的 JDialog 示例:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;/*** @author: Ajie* @create: 2023/6/21* @Description:* @FileName: MyDialog* @History:* @自定义内容:*/
public class MyDialog extends JDialog implements ActionListener {private JLabel label; // 创建一个 JLabel 对象public MyDialog(JFrame parent) { // 构造函数,接受一个 JFrame 对象作为参数// 调用 JDialog 的构造函数,设置标题、模态、布局、位置等属性super(parent, "My JDialog", true);setLayout(new FlowLayout()); // 设置 JDialog 的布局为 FlowLayoutlabel = new JLabel("This is a JDialog."); // 创建一个 JLabel,并设置文本内容add(label); // 将 JLabel 添加进 JDialogJButton okButton = new JButton("OK"); // 创建一个 JButton 对象okButton.setActionCommand("OK"); // 设置 JButton 的 actionCommand 属性为 "OK"okButton.addActionListener(this); // 为 JButton 添加 ActionListeneradd(okButton); // 将 JButton 添加进 JDialogsetDefaultCloseOperation(DISPOSE_ON_CLOSE); // 设置 JDialog 的关闭操作为 DISPOSE_ON_CLOSEsetLocationRelativeTo(null); // 将 JDialog 相对于父窗口居中显示pack(); // 调整 JDialog 的大小,以适应其中包含的组件setVisible(true); // 显示 JDialog}public void actionPerformed(ActionEvent e) { // ActionListener 接口的方法dispose(); // 关闭 JDialog}public static void main(String[] args) { // 主函数JFrame frame = new JFrame(); // 创建 JFrame 对象frame.setTitle("My JDialog"); // 设置 JFrame 的标题frame.setSize(400, 400); // 设置 JFrame 的大小frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置 JFrame 的关闭操作frame.setLocationRelativeTo(null); // 将 JFrame 居中显示JButton button = new JButton("Show JDialog"); // 创建一个 JButton 对象button.addActionListener(new ActionListener() { // 为 JButton 添加 ActionListenerpublic void actionPerformed(ActionEvent e) {JDialog dialog = new MyDialog(frame); // 创建一个 MyDialog 对象}});frame.add(button); // 将 JButton 添加进 JFrameframe.setVisible(true); // 显示 JFrame}
}

这个示例中,我们首先创建了一个 MyDialog 类继承了 JDialog,传入了一个 JFrame 实例(parent)作为参数。在构造函数中创建了一个包含一个标签和一个确定按钮的 JDialog。确定按钮被创建为 ActionCommand 为“OK”的 JDialog,然后添加 ActionListener 来监听按钮的点击事件。最后创建了一个 MyDialog 实例,并将其显示在 JFrame 中。

示例图:

 

以上三个示例展示了 JFrame、JPanel 和 JDialog 组件的基本用法,它们被广泛用于 Swing 应用程序中。当然,Swing 还有其他的组件和容器,可以根据自己的需求选择使用。

示例四:实战:编写一个可以生成密码加密的程序

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;/*** @author: Ajie* @create: 2023/6/21* @Description:* @FileName: PasswordEncrypter* @History:* @自定义内容:*/
public class PasswordEncrypter extends JFrame {private JTextField passwordField; // 密码输入文本框private JTextArea resultArea; // 输出文本区域public PasswordEncrypter() {// 调用JFrame构造函数,设置窗口标题super("密码加密程序");// 创建文本框和标签JLabel passwordLabel = new JLabel("请输入密码:");// 修改输入标签的字体Font font2 = new Font("微软雅黑", Font.PLAIN, 30);  //设置字体及大小passwordLabel.setFont(font2);passwordField = new JTextField(20); // 创建密码输入文本框// 修改输入框的大小和字体Font font = new Font("微软雅黑", Font.PLAIN, 25);  //设置字体及大小passwordField.setPreferredSize(new Dimension(1400, 100));passwordField.setFont(font);// 创建按钮JButton encryptButton = new JButton("加密");Font font3 = new Font("微软雅黑", Font.PLAIN, 40);  //设置字体及大小encryptButton.setFont(font3);encryptButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {// 获取输入密码并进行加密String password = passwordField.getText();String encrypted = encrypt(password);// 在文本框中显示输出结果resultArea.setText(encrypted);}});// 创建文本区域resultArea = new JTextArea(5, 20);resultArea.setLineWrap(true);  // 启用自动换行resultArea.setWrapStyleWord(true);// 修改输入框的大小和字体Font font1 = new Font("微软雅黑", Font.PLAIN, 25);  //设置字体及大小resultArea.setPreferredSize(new Dimension(1400, 500));resultArea.setFont(font1);// 使用 GridBagLayout 布局,设置组件大小和位置JPanel panel = new JPanel(new GridBagLayout());GridBagConstraints c = new GridBagConstraints();c.insets = new Insets(10, 10, 10, 10);c.gridx = 0;c.gridy = 0;c.weightx = 0;panel.add(passwordLabel, c);c.gridx = 1;c.gridy = 0;c.weightx = 1.0;c.fill = GridBagConstraints.HORIZONTAL;panel.add(passwordField, c);c.gridx = 0;c.gridy = 1;c.gridwidth = 2;c.weighty = 1.0;c.fill = GridBagConstraints.BOTH;panel.add(resultArea, c);c.gridx = 0;c.gridy = 2;c.gridwidth = 2;c.weighty = 0;c.fill = GridBagConstraints.NONE;panel.add(encryptButton, c);// 设置整体窗口大小为1500*900setPreferredSize(new Dimension(1500, 900));// 最大化显示// setExtendedState(JFrame.MAXIMIZED_BOTH);// 把面板添加到窗口中setContentPane(panel);pack();setLocationRelativeTo(null); // 让窗口显示在屏幕中间setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}// 加密函数,这里只是简单地把密码加上了一个后缀private String encrypt(String password) {// 在这里编写加密代码return password+"加密完成";}public static void main(String[] args) {new PasswordEncrypter();}}

示例图:

这个程序使用 JFrame 创建了一个窗口,并添加了一个密码输入框、一个文本标签、一个按钮和一个文本区域。当用户在密码框中输入密码并单击按钮时,程序会模拟加密该密码,然后在文本区域中显示输出结果。

在 JFrame 的构造函数中,我们使用 GridBagLayout 布局管理器来设置输入框、标签、按钮和文本区域的位置和大小。在添加这些组件之后,我们添加了一个组件监听器,以便在窗口大小发生变化时更新组件大小。在 componentResized 方法中,我们获取了窗口的大小,并设置了输入框和输出区域的大小。

在这个程序中,我们还提供了一个模拟加密方法,以便在用户单击按钮时对密码进行加密。此外,在组件监听器中,我们使用 setPreferredSize 方法来更新输入框和输出区域的大小,并在每次更新后重新打包窗

将程序打成jar包本地运行操作

敬请期待!


http://www.ppmy.cn/news/502943.html

相关文章

四、卷积神经网络整体基础结构

一、计算机发展应用 神经网络主要用于特征提取 卷积神经网络主要应用在图像领域,解决传统神经网络出现的过拟合、权重太多等风险 1,CV领域的发展 Computer vision计算机视觉的发展在2012年出现的AlexNet开始之后得到了挽救 之前都是一些传统的机器学习…

GCD信号量 -- semaphore

GCD信号量:DispatchSemaphore 一、信号量简介 信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信…

数组递归遍历在数据结构和算法中的作用

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言什么是数组递归遍历…

兄弟7010加粉解码DCP-7010加粉

兄弟7010加粉解码DCP-7010加粉后,(在套鼓的左方)将白色小推捍向右方推尽,放回机内即可。硒鼓确保前盖打开,然后按控制面板上的Option(选项)键,当屏幕上出现ReplaceDrum?(更换硒鼓)信息时,请按▲键.当屏幕上出现Accepted(已接受)信息时,请合上前盖.2040恢复出厂设置方法打开打印…

LeetCode算法题---两数之和(一)

两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任…

C++ 教程(19)——日期 时间

C 日期 & 时间 C 标准库没有提供所谓的日期类型。C 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构&#xff0c;需要在 C 程序中引用 <ctime> 头文件。 有四个与时间相关的类型&#xff1a;clock_t、time_t、size_t 和 tm。类型…

求一个好用的简洁设置的PPT倒计时器

标题求一个好用的简洁设置的PPT倒计时器 求一个好用的简洁设置的PPT倒计时器&#xff0c;不要复杂的设置&#xff0c;只要位置、大小、时间设置。

计时器的设计

利用前面关卡中设计的60进制计数器和24进制计数器&#xff0c;来联合设计一个24小时的计数器&#xff0c;要求具有同步置数、异步清零功能。