Java:实现一个能够改变显示单词的字体风格和大小的GUI(第十三周)

本文介绍了一个使用Java Swing实现的GUI应用程序,该程序允许用户通过单选和复选框选择不同的字体样式和大小,以实时更改显示文本的外观。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目来源:大工慕课 链接
作者:Caleb Sung

题目要求

实现一个能够改变显示单词的字体风格和大小的GUI。

参考代码

import java.awt.BorderLayout;
import java.awt.Font;

import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class FontTest {
    public static void main(String[] args) {
        new FontFrame();
    }
}

@SuppressWarnings("serial")
class FontFrame extends JFrame {

    JCheckBox bold = new JCheckBox("Bold");
    JCheckBox italic = new JCheckBox("Italic");
    JRadioButton small = new JRadioButton("Small");
    JRadioButton medium = new JRadioButton("Medium");
    JRadioButton large = new JRadioButton("Large");
    JRadioButton extra_large = new JRadioButton("Extra Large");
    int fontSize;
    JLabel display;

    public FontFrame() {
        setTitle("Change Font");
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        display = new JLabel();
        display.setText("The quick brown fox jump over the lazy dog.");
        display.setFont(new Font("Serif", Font.PLAIN, 10));

        add(display, BorderLayout.CENTER);

        JPanel btnp = new JPanel();
        btnp.add(bold);
        btnp.add(italic);
        btnp.add(small);
        btnp.add(medium);
        btnp.add(large);
        btnp.add(extra_large);

        ButtonGroup bg = new ButtonGroup();
        bg.add(small);
        bg.add(medium);
        bg.add(large);
        bg.add(extra_large);
        small.setSelected(true);

        add(btnp, BorderLayout.SOUTH);

        bold.addActionListener(e -> {
            changeFont();
        });
        italic.addActionListener(e -> {
            changeFont();
        });
        small.addActionListener(e -> {
            changeFont();
        });
        medium.addActionListener(e -> {
            changeFont();
        });
        large.addActionListener(e -> {
            changeFont();
        });
        extra_large.addActionListener(e -> {
            changeFont();
        });

        pack();
    }

    void changeFont() {
        int mode = Font.PLAIN;
        if (bold.isSelected())
            mode += Font.BOLD;
        if (italic.isSelected())
            mode += Font.ITALIC;
        if(small.isSelected())
            fontSize = 10;
        else if (medium.isSelected())
            fontSize = 20;
        else if (large.isSelected())
            fontSize = 30;
        else if (extra_large.isSelected())
            fontSize = 50;
        display.setFont(new Font("Serif", mode, fontSize));
        pack();
        validate();
    }
}

运行效果

界面下方的选项卡中有单选也有复选框。详细效果请大家自己在实现后体验一下~
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值