以下是四个使用 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 实例来启动应用程序。

示例图:

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

 

 

示例二: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 中添加两个 JButton
        add(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 对象添加进 JFrame
        
        frame.setVisible(true); // 显示 JFrame
    }
}

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

示例图:

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

 

示例三: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 的布局为 FlowLayout
        
        label = new JLabel("This is a JDialog."); // 创建一个 JLabel,并设置文本内容
        add(label); // 将 JLabel 添加进 JDialog
        
        JButton okButton = new JButton("OK"); // 创建一个 JButton 对象
        okButton.setActionCommand("OK"); // 设置 JButton 的 actionCommand 属性为 "OK"
        okButton.addActionListener(this); // 为 JButton 添加 ActionListener
        add(okButton); // 将 JButton 添加进 JDialog
        
        setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 设置 JDialog 的关闭操作为 DISPOSE_ON_CLOSE
        setLocationRelativeTo(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 添加 ActionListener
            public void actionPerformed(ActionEvent e) {
                JDialog dialog = new MyDialog(frame); // 创建一个 MyDialog 对象
            }
        });
        frame.add(button); // 将 JButton 添加进 JFrame
        
        frame.setVisible(true); // 显示 JFrame
    }
}

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

示例图:

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

 

以上三个示例展示了 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*900
        setPreferredSize(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();
    }

}

示例图:

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

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

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

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

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

敬请期待!

06-21 21:05