JAVA GUI 实现简单字体编辑器

在这里插入代码片

package windowsziti;

import javax.swing.;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;

public class Main extends JFrame {
JButton yes;
JButton no;
JCheckBox jiacu;
JCheckBox xieti;
JRadioButton rbtred;
JRadioButton rbtgreen;
JTextArea wenben;
ButtonGroup grpColor;
JLabel jLabelC;
JComboBox jComboBox;
JComboBox jComboBoxD;
JLabel jLabel;
String colorFont = “”;
int zitiStyle = 0;

//JList<Integer> jList;
public Main() {
    //窗口大小:
    setVisible(true);// 设置可见
    setTitle("字体选择器");
    setSize(350, 330);
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Dimension Size = toolkit.getScreenSize();// 获得本机屏幕大小
    setLocation(Size.width / 2 - getWidth() / 2, Size.height / 2
            - getHeight() / 2);
    Container pnlmain = this.getContentPane();
    JPanel pnltop = new JPanel();
    JPanel pnltmid1 = new JPanel();
    JPanel pnltmid2 = new JPanel();
    JPanel pnltmid3 = new JPanel();
    JPanel pnlunder = new JPanel();
    pnlmain.setLayout(new GridLayout(5, 1));// 修改布局管理器
    pnlmain.add(pnltop);
    pnlmain.add(pnltmid1);
    pnlmain.add(pnltmid2);
    pnlmain.add(pnltmid3);
    pnlmain.add(pnlunder);
    //窗口图标
    Image image = toolkit.getImage("src/text.jpg");// 图片对象
    this.setIconImage(image);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //下拉选项:上半部分
    jLabel = new JLabel("请选择字体样式");
    jLabel.setLayout(new FlowLayout());
    String[] strings = {"宋体", "楷体", "黑体", "行体", "隶书"};
    jComboBox = new JComboBox(strings);
    ; //创建一个下拉框
    pnltop.add(jLabel);
    pnltop.add(jComboBox);
    setVisible(true);
    //中:字体大小
    //jList = new JList<>(vector);
    jLabelC = new JLabel("请选择字体字体大小");
    jLabelC.setLayout(new FlowLayout());
    jComboBoxD = new JComboBox(); //创建一个下拉框
    for (int i = 10; i < 30; i += 2) {
        jComboBoxD.addItem(i);
    }
    pnltmid1.add(jLabelC);
    pnltmid1.add(jComboBoxD);
    setVisible(true);
    //颜色选择区
    grpColor = new ButtonGroup();
    rbtred = new JRadioButton("红色");

    rbtgreen = new JRadioButton("绿色");
    grpColor.add(rbtgreen);
    grpColor.add(rbtred);
    pnltmid2.add(rbtred);
    pnltmid2.add(rbtgreen);

    //复选框

    jiacu = new JCheckBox("加粗");
    xieti = new JCheckBox("斜体");
    pnltmid2.add(jiacu);
    pnltmid2.add(xieti);


    //文本域
    wenben = new JTextArea("这是测试文字" + '\n' +
            "   请选择后按【确定】");
    pnltmid3.add(wenben);
    //按键区
    yes = new JButton("确定");
    no = new JButton("退出");
    pnlunder.add(yes);
    pnlunder.add(no);
    yes.addActionListener(new ActionListener() {

        @Override
        //事件处理:
        public void actionPerformed( ActionEvent e ) {
            String zitiway = (String) jComboBox.getSelectedItem();
            int zitiSize = Integer.parseInt(String.valueOf(jComboBoxD.getItemAt(jComboBoxD.getSelectedIndex())));
            Enumeration<AbstractButton> elements = grpColor.getElements();
            while (elements.hasMoreElements()) {
                AbstractButton btn = elements.nextElement();
                if (btn.isSelected()) {
                    colorFont = btn.getText();
                    break;
                }
            }

            if (jiacu.isSelected()) {
                zitiStyle += Font.BOLD;

            }
            if (xieti.isSelected()) {
                zitiStyle += Font.ITALIC;
            }

            Font f = new Font(zitiway, zitiStyle, zitiSize);
            //字体(宋),外观(加粗),大小(20);
            if (rbtred.isSelected()) {
                wenben.setForeground(Color.red);

            }
            if (rbtgreen.isSelected()) {
                wenben.setForeground(Color.green);
            }

            wenben.setFont(f);
            colorFont = "";
            zitiStyle = 0;
        }
    });

    no.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed( ActionEvent e ) {
            System.exit(0);
        }
    });

}

public static void main( String[] args ) {
    new Main().setVisible(true);
}

}

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值