最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java結(jié)合Swing實現(xiàn)龍年祝福語生成工具

 更新時間:2024年01月19日 08:18:51   作者:棧江湖  
Swing是一個為Java設(shè)計的GUI工具包,屬于Java基礎(chǔ)類的一部分,本文將使用Java和Swing實現(xiàn)龍年祝福語生成工具,感興趣的小伙伴可以了解下

一、前言

Swing是一個為Java設(shè)計的GUI工具包,屬于Java基礎(chǔ)類的一部分。Swing包括了圖形用戶界面(GUI)功能,其組件包含:文本框、文本域、按鈕、表格、列表等。

看著這個熟悉又陌生的界面,相信對大多數(shù)人來說Java Swing已經(jīng)淡出了我們的視線。

再看看下面的界面,好像風格與上面完全不一樣,但的確也是Java Swing。

原來Swing提供了可編程渲染模型,使用戶可以對渲染細節(jié)進行控制。也就是使用了LAF,那么什么是LAF呢?

Java Swing LAF(Look and Feel)是用于更改Java Swing組件的外觀和感覺的庫。LAF可以為應(yīng)用程序提供統(tǒng)一的視覺風格,并使其更具吸引力和易用。

二、Swing+LAF生成龍年祝福

以下就是使用Java Swing+Laf實現(xiàn)的龍年祝福語生成器:

import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;
import javax.imageio.ImageIO;

public class DragonYearWishesGenerator extends JFrame {

    private JLabel wishesLabel;
    private JButton generateWishesButton;
    private JButton copyButton;
    private JLabel dragonImageLabel;
    private JCheckBox redCheckbox;
    private JCheckBox blueCheckbox;
    private JCheckBox greenCheckbox;

    private final String[] dragonYearWishes = {
            "龍年大吉,好運連連!",
            "祝福你在新的一年里騰飛如龍!",
            "龍年到,幸福跟著走,萬事如意!",
            "龍年到,祝福到,祝愿大家龍年快樂!",
            "騰四海,福滿人間。2024年開門紅,事業(yè)有成,財源廣進!",
            "龍年神獸守護您,幸福平安陪伴您!愿您龍年事業(yè)蒸蒸日上,家庭和和美美!"
            // 添加更多祝福語...
    };

  	//圖片放在與class文件同目錄
    private final String[] dragonImages = {
            "img1.jpg",
            "img2.jpg",
            "img3.jpg"
            // 添加更多龍年圖片資源路徑...
    };

    public DragonYearWishesGenerator() {
        initializeUI();
    }

    private void initializeUI() {
        // 設(shè)置Darcula外觀
        try {
            UIManager.setLookAndFeel("com.bulenkov.darcula.DarculaLaf");
        } catch (Exception e) {
            e.printStackTrace();
        }

        SwingUtilities.updateComponentTreeUI(this);
        this.setSize(400, 200);
        setTitle("龍年祝福語生成器");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 上層:字體顏色勾選
        JPanel colorCheckboxPanel = new JPanel();
        redCheckbox = new JCheckBox("紅色");
        blueCheckbox = new JCheckBox("藍色");
        greenCheckbox = new JCheckBox("綠色");

        // 添加顏色選擇監(jiān)聽器
        redCheckbox.addActionListener(e -> updateFontColor());
        blueCheckbox.addActionListener(e -> updateFontColor());
        greenCheckbox.addActionListener(e -> updateFontColor());

        colorCheckboxPanel.add(redCheckbox);
        colorCheckboxPanel.add(blueCheckbox);
        colorCheckboxPanel.add(greenCheckbox);

        add(colorCheckboxPanel, BorderLayout.NORTH);

        // 中間層:隨機選擇龍年圖片
        generateWishesButton = new JButton("生成龍年祝福語");
        generateWishesButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                displayRandomDragonImage();
            }
        });
        add(generateWishesButton, BorderLayout.CENTER);

        dragonImageLabel = new JLabel();
        dragonImageLabel.setHorizontalAlignment(JLabel.CENTER);
        add(dragonImageLabel, BorderLayout.CENTER);

        // 最下層:龍年祝福語和復(fù)制按鈕
        wishesLabel = new JLabel();
        wishesLabel.setHorizontalAlignment(JLabel.CENTER);
        add(wishesLabel, BorderLayout.SOUTH);

        copyButton = new JButton("復(fù)制");
        copyButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                copyWishesToClipboard();
            }
        });

        JPanel buttonPanel = new JPanel();
        buttonPanel.add(generateWishesButton);
        buttonPanel.add(copyButton);

        add(buttonPanel, BorderLayout.EAST);

        // 設(shè)置窗體大小為600x600
        setSize(600, 600);

        pack();
        setLocationRelativeTo(null);
    }

    private void displayRandomDragonImage() {
        // 隨機選擇一張龍年圖片并顯示在中間層
        Random random = new Random();
        int index = random.nextInt(dragonImages.length);

        try {
            // 從文件加載圖片
            InputStream stream = getClass().getResourceAsStream(dragonImages[index]);
            BufferedImage image = ImageIO.read(stream);
            // 設(shè)置圖片到中間層組件
            dragonImageLabel.setIcon(new ImageIcon(image));
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 隨機選擇一條祝福語并顯示在最下層
        index = random.nextInt(dragonYearWishes.length);
        wishesLabel.setText(dragonYearWishes[index]);

        // 根據(jù)選擇的顏色修改字體顏色
        updateFontColor();
    }

    private void copyWishesToClipboard() {
        // 復(fù)制祝福語到剪貼板
        String wishes = wishesLabel.getText();
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        clipboard.setContents(new StringSelection(wishes), null);
        JOptionPane.showMessageDialog(this, "祝福語已復(fù)制到剪貼板!");
    }

    private void updateFontColor() {
        // 根據(jù)選擇的顏色修改字體顏色
        Color fontColor = Color.BLACK; // 默認黑色

        if (redCheckbox.isSelected()) {
            fontColor = Color.RED;
        } else if (blueCheckbox.isSelected()) {
            fontColor = Color.BLUE;
        } else if (greenCheckbox.isSelected()) {
            fontColor = Color.GREEN;
        }

        wishesLabel.setForeground(fontColor);
    }

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

三、Swing外觀

3.1、使用Swing的產(chǎn)品

IntelliJ IDEA

Google Android Studio

還有Eclipse、NetBeans、Mapollage、Jotasync、Apache JMeter等,目前來看好像主要就在IDE這個領(lǐng)域中應(yīng)用。

3.2、LAF

LAF 指的是 "Look and Feel",它是用戶界面設(shè)計中的一個概念,用于描述應(yīng)用程序或窗體的外觀和感覺。在 Java Swing 中,LAF 是一種機制,允許開發(fā)人員輕松地更改應(yīng)用程序的外觀,以使其適應(yīng)不同的操作系統(tǒng)或用戶偏好。

Java Swing 庫提供了一組默認的 Look and Feel,例如 Metal、Nimbus 等。每個 Look and Feel 都定義了組件的外觀和行為,以便它們在屏幕上顯示為特定的外觀風格。用戶可以選擇使用不同的 Look and Feel 來改變應(yīng)用程序的外觀,以使其與操作系統(tǒng)或其他應(yīng)用程序一致。

一些第三方庫也提供了自定義的 Look and Feel:

DarculaLaf

DarculaLaf,它模仿了 IntelliJ IDEA 的深色外觀風格(Dark Theme)。Darcula 是 Java 桌面應(yīng)用程序的 Look-n-Feel 和代碼編輯器主題。該存儲庫主要關(guān)注 Java 外觀,并包含現(xiàn)成的庫。

FlatLaf

FlatLaf 是一個現(xiàn)代的 Java Swing Look and Feel,它提供了扁平化的外觀,適用于創(chuàng)建現(xiàn)代化和清晰的用戶界面。FlatLaf 通過提供扁平化的設(shè)計元素、清晰的圖標和現(xiàn)代化的外觀,使得 Swing 應(yīng)用程序能夠呈現(xiàn)現(xiàn)代風格的用戶界面。

還有一些出色的LAF如JTattoo、WebLaF、Quaqua 等等。

Java Swing主要集中在 IDE(集成開發(fā)環(huán)境),如 IntelliJ IDEA, Eclipse, NetBeans 等,相比與QT之類的GUI,Java Swing的前景并不樂觀。想當年老師還是教了好幾堂課的,用此程序紀念一下。祝愿大家在這龍年里好運連連?。?/p>

以上就是Java結(jié)合Swing實現(xiàn)龍年祝福語生成工具的詳細內(nèi)容,更多關(guān)于Java Swing祝福語生成工具的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在JAVA?Web項目中動態(tài)加載DLL/SO文件的方法

    在JAVA?Web項目中動態(tài)加載DLL/SO文件的方法

    在JAVA?Web項目中,我們經(jīng)常需要調(diào)用一些第三方庫或者實現(xiàn)一些JAVA本身不支持的功能,這時,我們可能會考慮使用JNI來調(diào)用DLL或SO文件,然而,因此,本文將介紹如何在JAVA?Web項目中動態(tài)加載DLL/SO文件,需要的朋友可以參考下
    2024-12-12
  • Java中for(;;)和while(true)的區(qū)別

    Java中for(;;)和while(true)的區(qū)別

    這篇文章主要介紹了 Java中for(;;)和while(true)的區(qū)別,文章圍繞for(;;)和while(true)的相關(guān)自來哦展開詳細內(nèi)容,需要的小伙伴可以參考一下,希望對大家有所幫助
    2021-11-11
  • Spring使用redis遇到的問題及解決方案

    Spring使用redis遇到的問題及解決方案

    這篇文章主要介紹了Spring使用redis遇到的問題及解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot整合EasyExcel的完整過程記錄

    SpringBoot整合EasyExcel的完整過程記錄

    easyexcel是阿里巴巴旗下開源項目,主要用于Excel文件的導(dǎo)入和導(dǎo)出處理,下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合EasyExcel的完整過程,需要的朋友可以參考下
    2021-12-12
  • java遞歸生成樹型結(jié)構(gòu)方式

    java遞歸生成樹型結(jié)構(gòu)方式

    文章介紹了如何使用Java遞歸生成樹形結(jié)構(gòu),包括獲取數(shù)據(jù)、生成樹形結(jié)構(gòu)、查詢子節(jié)點等步驟,作者分享了自己的經(jīng)驗,希望能對大家有所幫助
    2024-12-12
  • Java無法輸出中文問題及解決

    Java無法輸出中文問題及解決

    這篇文章主要介紹了Java無法輸出中文問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • HttpServletRequest對象方法的用法小結(jié)

    HttpServletRequest對象方法的用法小結(jié)

    HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協(xié)議訪問服務(wù)器時,HTTP請求頭中的所有信息都封裝在這個對象中,開發(fā)人員通過這個對象的相關(guān)方法,即可以獲得客戶的這些信息
    2017-03-03
  • Spring?Boot?優(yōu)雅整合多數(shù)據(jù)源

    Spring?Boot?優(yōu)雅整合多數(shù)據(jù)源

    這篇文章主要介紹了Spring?Boot?優(yōu)雅整合多數(shù)據(jù)源,多數(shù)據(jù)源就是在一個單一應(yīng)用中涉及到了兩個及以上的數(shù)據(jù)庫,更多相關(guān)內(nèi)容需要的小伙伴可以參考下面文章介紹
    2022-05-05
  • Java日常練習題,每天進步一點點(63)

    Java日常練習題,每天進步一點點(63)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-08-08
  • mac 安裝java1.8的過程詳解

    mac 安裝java1.8的過程詳解

    這篇文章主要介紹了mac 安裝java1.8,包括下載過程及配置環(huán)境相關(guān)知識介紹,本文結(jié)合實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09

最新評論

故城县| 金山区| 尼木县| 芜湖市| 雷州市| 申扎县| 乌鲁木齐市| 防城港市| 祁门县| 门头沟区| 基隆市| 北宁市| 会宁县| 孟村| 新营市| 芷江| 阿瓦提县| 军事| 楚雄市| 天等县| 土默特右旗| 多伦县| 麻栗坡县| 渝北区| 永州市| 苏尼特左旗| 大厂| 安宁市| 马鞍山市| 玉环县| 曲靖市| 汪清县| 无极县| 恩施市| 嘉义县| 新乡县| 客服| 平远县| 石台县| 新化县| 南江县|