创建JFrame子类案例


创建一个继承自 JFrame 的子类是Java Swing编程中的常见做法。下面我将引导你完成这个过程。

首先,你需要确保你的开发环境中已经安装了Java JDK,并且设置好了相应的环境变量。接下来,我们将使用Java语言来编写一个简单的程序,该程序会创建一个新的JFrame子类,并显示一个基本的窗口。

第一步:定义JFrame子类

  1. 创建新的Java类 - 我们将创建一个名为 MyFirstJFrame 的新类,它继承自 JFrame 类。
  2. 添加构造函数 - 在这个构造函数中,我们将设置窗口的基本属性,比如大小、默认关闭操作等。
  3. 设置窗口内容 - 通常我们会在这里添加一些组件到窗口中。

示例代码

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

public class MyFirstJFrame extends JFrame {

    public MyFirstJFrame() {
        // 设置窗口标题
        setTitle("My First JFrame");

        // 设置窗口初始大小
        setSize(400, 300);

        // 设置窗口关闭操作
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 添加组件到窗口
        JLabel label = new JLabel("Hello, World!", SwingConstants.CENTER);
        label.setHorizontalAlignment(SwingConstants.CENTER);
        getContentPane().add(label);

        // 设置窗口可见
        setVisible(true);
    }

    public static void main(String[] args) {
        // 确保Swing图形用户界面在事件调度线程中创建
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new MyFirstJFrame();
            }
        });
    }
}

第二步:编译和运行

  1. 保存文件 - 将上述代码保存为 MyFirstJFrame.java
  2. 编译代码 - 使用命令行工具进入包含源文件的目录,然后输入 javac MyFirstJFrame.java 进行编译。
  3. 运行程序 - 编译成功后,输入 java MyFirstJFrame 来运行程序。

注意事项

  • 确保你的Java环境配置正确。
  • 如果你在IDE(如Eclipse或IntelliJ IDEA)中工作,可以直接通过IDE来编译和运行上述代码。

这就是创建一个简单的JFrame子类的基本步骤。你可以在此基础上扩展更多的功能,比如添加按钮、文本框等交互元素。

接下来可以在现有的基础上增加更多的功能和组件。

扩展功能

假设我们想要添加一个按钮和一个标签,当点击按钮时,标签的内容会发生变化。这将涉及到以下步骤:

  1. 添加按钮 - 使用 JButton 类。
  2. 添加动作监听器 - 当按钮被点击时触发的动作。
  3. 更新标签内容 - 根据按钮点击事件更新 JLabel 的文本。

示例代码

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MyFirstJFrame extends JFrame {

    private JLabel messageLabel;

    public MyFirstJFrame() {
        // 设置窗口标题
        setTitle("My First JFrame");

        // 设置窗口初始大小
        setSize(400, 300);

        // 设置窗口关闭操作
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 初始化标签
        messageLabel = new JLabel("Hello, World!", JLabel.CENTER);
        getContentPane().add(messageLabel);

        // 添加按钮
        JButton button = new JButton("Change Message");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                messageLabel.setText("Message Changed!");
            }
        });
        getContentPane().add(button);

        // 设置窗口布局
        // 默认布局可能不适合,这里可以使用BorderLayout或其他布局管理器
        // 为了简单起见,我们先不改变默认布局

        // 设置窗口可见
        setVisible(true);
    }

    public static void main(String[] args) {
        // 确保Swing图形用户界面在事件调度线程中创建
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new MyFirstJFrame();
            }
        });
    }
}

关键点解释

  1. 按钮创建与添加 - 我们创建了一个 JButton 对象,并添加了一个动作监听器。当按钮被点击时,监听器会调用 actionPerformed 方法。
  2. 标签更新 - 在 actionPerformed 方法中,我们更新了 messageLabel 的文本。
  3. 布局管理 - 默认情况下,JFrame 使用的是 BorderLayout。在这个例子中,我们没有显式地指定布局,因此按钮和标签会被添加到 BorderLayout.CENTER 区域。如果你希望更精细地控制组件的位置,可以考虑使用其他布局管理器,例如 FlowLayoutGridLayout

运行程序

  • 保存上述代码为 MyFirstJFrame.java 文件。
  • 使用命令行工具进入包含源文件的目录,然后输入 javac MyFirstJFrame.java 进行编译。
  • 输入 java MyFirstJFrame 来运行程序。

当你运行这个程序时,你会看到一个包含一个标签和一个按钮的窗口。点击按钮后,标签的内容会从 “Hello, World!” 变为 “Message Changed!”。

这个简单的示例展示了如何使用Swing创建一个具有基本交互功能的GUI应用程序

进一步扩展这个程序,我们可以添加更多的功能,比如使用不同的布局管理器来组织组件,以及添加更多的交互元素。接下来,让我们添加一个文本框让用户能够输入文本,然后通过按钮点击来更新标签的内容。

新功能

  1. 使用 FlowLayout 布局管理器 - 使所有组件水平排列。
  2. 添加文本框 - 允许用户输入文本。
  3. 修改按钮功能 - 当按钮被点击时,使用文本框中的文本更新标签。

示例代码

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MyFirstJFrame extends JFrame {

    private JLabel messageLabel;
    private JTextField textField;

    public MyFirstJFrame() {
        // 设置窗口标题
        setTitle("My First JFrame");

        // 设置窗口初始大小
        setSize(400, 300);

        // 设置窗口关闭操作
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 初始化布局管理器
        setLayout(new FlowLayout());

        // 初始化标签
        messageLabel = new JLabel("Hello, World!", JLabel.CENTER);
        getContentPane().add(messageLabel);

        // 初始化文本框
        textField = new JTextField(20); // 设置文本框宽度为20个字符
        getContentPane().add(textField);

        // 添加按钮
        JButton button = new JButton("Update Message");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String text = textField.getText();
                messageLabel.setText(text);
            }
        });
        getContentPane().add(button);

        // 设置窗口可见
        setVisible(true);
    }

    public static void main(String[] args) {
        // 确保Swing图形用户界面在事件调度线程中创建
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new MyFirstJFrame();
            }
        });
    }
}

关键点解释

  1. 使用 FlowLayout - FlowLayout 是一种简单的布局管理器,它按照添加组件的顺序从左到右排列组件。如果一行的空间不足以容纳下一个组件,则它将被放置在下一行的开始位置。
  2. 添加文本框 - 我们创建了一个 JTextField 对象,并设置了它的宽度。这个文本框允许用户输入文本。
  3. 修改按钮功能 - 我们更新了按钮的动作监听器,以便在按钮被点击时读取文本框中的文本,并将其设置为标签的新文本。

运行程序

  • 保存上述代码为 MyFirstJFrame.java 文件。
  • 使用命令行工具进入包含源文件的目录,然后输入 javac MyFirstJFrame.java 进行编译。
  • 输入 java MyFirstJFrame 来运行程序。

当你运行这个程序时,你会看到一个包含一个标签、一个文本框和一个按钮的窗口。你可以输入文本到文本框中,然后点击按钮来更新标签的内容。

扩展建议

  • 你可以尝试使用其他布局管理器,比如 GridLayoutBoxLayout,以获得不同的布局效果。
  • 考虑添加更多的功能,比如复选框、单选按钮等,来丰富用户界面。
  • 实现更复杂的逻辑,比如数据验证、错误提示等。
😍😍 海量H5小游戏、微信小游戏、Web casualgame源码😍😍
😍😍试玩地址: https://www.bojiogame.sg😍😍
😍看上哪一款,需要源码的csdn私信我😍

————————————————

​最后我们放松一下眼睛
在这里插入图片描述

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极致人生-010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值