Java Swing花样玩法:教你用代码制作六一儿童节的精美贺卡(简单版)

博主:命运之光

专栏:Java经典程序设计

前言:这篇博客在打开可能会自动播放视频,视频有音乐,请及时静音哈🙂 

目录

✨前言

✨引言

✨简单介绍一下Javaswing这项技术简单介绍一下Javaswing这项技术(选读,感兴趣的可以了解一下哈(●'◡'●))

✨程序展示

✨视频展示

🍓源代码

✨结语


前言

🦄六一儿童节是一个充满欢乐和祝福的节日,我们都希望给孩子们送上最美好的礼物。我是一名编程爱好者,我用Javaswing写了一个关于六一儿童节的鲜花贺卡,它可以在电脑屏幕上显示出各种颜色和形状的花朵,还可以播放动画和音乐。我想通过这个贺卡,表达我对孩子们的爱和祝福,也希望能激发他们对编程的兴趣。在这篇博客中,我将和大家分享我是如何设计和实现这个贺卡的,以及我在这个过程中遇到的一些挑战和收获❤️


✨引言

儿童节快乐!在这个特殊的日子里,我想向所有的孩子们致以最诚挚的祝福。作为一位热爱编程和创造的开发者,我决定写下这篇博客,与大家分享一个简单而有趣的项目,让我们一起用Java Swing创造一个鲜花贺卡,把他送给你喜欢的人


✨简单介绍一下Javaswing这项技术简单介绍一下Javaswing这项技术(选读,感兴趣的可以了解一下哈(●'◡'●))

Javaswing是一种基于Java的图形用户界面(GUI)技术,它可以让开发者创建出丰富多彩的桌面应用程序。Javaswing提供了一系列的组件,如按钮、文本框、菜单、表格、树形结构等,以及一些高级功能,如拖放、撤销/重做、打印等。Javaswing的优点是跨平台、可定制、可扩展和易于使用。Javaswing的缺点是性能较低、内存占用较高、学习曲线较陡和与本地系统的集成度较低。本文将简单介绍一下Javaswing的历史、架构和应用范例,希望能给有兴趣的读者提供一些参考。

Javaswing的历史可以追溯到1995年,当时Java刚刚诞生,它的图形用户界面技术是基于AWT(Abstract Window Toolkit)的。AWT是一种与本地系统紧密耦合的技术,它使用了本地系统的组件和事件模型,因此具有很好的性能和集成度,但也导致了跨平台性和可定制性的问题。为了解决这些问题,Sun公司在1997年推出了JFC(Java Foundation Classes),其中包含了一个新的图形用户界面技术——Swing。Swing是一种纯Java的技术,它不依赖于本地系统的组件,而是自己绘制所有的界面元素,因此具有很好的跨平台性和可定制性,但也牺牲了一些性能和集成度。Swing最初是作为一个可选的扩展包提供的,后来在1998年被集成到了Java 2平台中,并成为了Java标准图形用户界面技术。

Javaswing的架构主要包括以下几个方面:组件、模型、事件、布局和外观。组件是指Swing提供的各种图形用户界面元素,如按钮、文本框等,它们都继承自javax.swing.JComponent类,这个类又继承自java.awt.Component类,因此Swing组件也可以使用AWT的一些特性,如容器、图形和字体等。模型是指Swing组件所依赖的数据结构,如按钮的状态、文本框的内容等,它们都实现了javax.swing.plaf.ComponentUI接口,这个接口定义了组件的基本行为和外观。事件是指Swing组件所响应的用户操作或系统通知,如鼠标点击、键盘输入等,它们都继承自java.awt.AWTEvent类,并使用了观察者模式来实现事件监听和分发。布局是指Swing组件在容器中的排列方式,如水平对齐、垂直对齐等,它们都实现了java.awt.LayoutManager接口,并提供了一些常用的布局管理器,如流式布局、网格布局等。外观是指Swing组件的视觉效果,如颜色、字体、图标等,它们都实现了javax.swing.plaf.ComponentUI接口,并提供了一些常用的外观风格,如金属风格、Windows风格等。

Javaswing的应用范例有很多,这里只举几个简单的例子。第一个例子是一个简单的计算器程序,它使用了Swing的按钮、文本框、标签和网格布局等组件,以及事件监听和处理等机制,实现了基本的加减乘除功能。第二个例子是一个简单的文本编辑器程序,它使用了Swing的文本区域、菜单、工具栏和滚动条等组件,以及拖放、撤销/重做和打印等功能,实现了基本的文本编辑功能。第三个例子是一个简单的图片浏览器程序,它使用了Swing的列表、标签和滑块等组件,以及图形和文件操作等技术,实现了基本的图片浏览功能。

以上就是对Javaswing这项技术的简单介绍,希望能对读者有所帮助。如果读者想要深入学习Javaswing,可以参考以下几本书籍:《Java Swing》(O'Reilly出版社),《Core Java Volume II - Advanced Features》(Prentice Hall出版社),《Java GUI程序设计》(清华大学出版社)。


✨程序展示


✨视频展示

六一儿童节快乐(鲜花贺卡)


🍓源代码

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class FlowerCardSender extends JFrame {
    private JComboBox<String> flowerComboBox;
    private JTextField recipientTextField;
    private JButton sendButton;

    public FlowerCardSender() {
        setTitle("送花祝福");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 200);
        setLocationRelativeTo(null);

        // 设置布局为边界布局
        setLayout(new BorderLayout());

        // 创建标题面板
        JPanel titlePanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
        JLabel titleLabel = new JLabel("六一儿童节送花祝福");
        titleLabel.setFont(new Font("宋体", Font.BOLD, 18));
        titlePanel.add(titleLabel);

        // 创建表单面板
        JPanel formPanel = new JPanel(new GridLayout(3, 2, 10, 10));
        JLabel flowerLabel = new JLabel("花朵类型:");
        flowerComboBox = new JComboBox<>(new String[]{"玫瑰花", "康乃馨", "百合花"});
        JLabel recipientLabel = new JLabel("接收者:");
        recipientTextField = new JTextField();
        formPanel.add(flowerLabel);
        formPanel.add(flowerComboBox);
        formPanel.add(recipientLabel);
        formPanel.add(recipientTextField);

        // 创建按钮面板
        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
        sendButton = new JButton("发送");
        sendButton.setPreferredSize(new Dimension(100, 40));
        sendButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                sendFlowerCard();
            }
        });
        buttonPanel.add(sendButton);

        // 添加面板到主窗口
        add(titlePanel, BorderLayout.NORTH);
        add(formPanel, BorderLayout.CENTER);
        add(buttonPanel, BorderLayout.SOUTH);

        setVisible(true);
    }

    private void sendFlowerCard() {
        String flowerType = (String) flowerComboBox.getSelectedItem();
        String recipient = recipientTextField.getText();

        // TODO: 使用邮件或短信服务发送花卡片
        // 在这里添加你的代码

        JOptionPane.showMessageDialog(this, "花卡片已发送给" + recipient + ",祝福已传达!");

        // 清空表单
        recipientTextField.setText("");
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new FlowerCardSender();
            }
        });
    }
}

✨结语

🍓🍓儿童节快乐!通过这篇博客,我们一起探索了使用Java Swing,我们看到了编程的魔力,我希望你喜欢这个小项目,它是我为了给孩子们带来一些快乐而制作的,永远少年🎉🎉🎉🎉

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是一个使用Java Swing库编写的六一儿童节创意代码,它可以在窗口中显示一幅充满童趣的图片,并且当鼠标移动到图片上方时,会出现一个祝福语: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ChildrensDay extends JFrame implements MouseListener { private JLabel label; public ChildrensDay() { // 设置窗口标题和大小 setTitle("六一儿童节快乐!"); setSize(600, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建一个JLabel对象,用于显示图片 label = new JLabel(new ImageIcon("childrens_day.png")); label.addMouseListener(this); // 将JLabel添加到窗口中央 add(label, BorderLayout.CENTER); // 显示窗口 setVisible(true); } // 鼠标移动到图片上时出现祝福语 @Override public void mouseEntered(MouseEvent e) { JOptionPane.showMessageDialog(this, "祝所有的小朋友们六一儿童节快乐!🎉🎁🎈", "六一儿童节", JOptionPane.INFORMATION_MESSAGE); } // 不需要实现的方 @Override public void mouseClicked(MouseEvent e) {} @Override public void mouseExited(MouseEvent e) {} @Override public void mousePressed(MouseEvent e) {} @Override public void mouseReleased(MouseEvent e) {} public static void main(String[] args) { new ChildrensDay(); } } ``` 需要注意的是,以上代码需要在项目目录下添加一张名为"childrens_day.png"的图片。另外,由于Java Swing库的特性,该窗口会一直存在直到用户手动关闭,因此在代码中需要使用`setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)`设置窗口关闭时的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

命运之光

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

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

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

打赏作者

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

抵扣说明:

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

余额充值