【java】查看 Java 所有字体的 代码。java字体对照小程序

博客提到复制代码可查看Java中的代码,还展示了运行结果截图。

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

复制下面代码,即可查看java中的代码

package com.fontDesign;

import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*;

public class FontDesign2{
    JFrame jFrame = new JFrame("All Font"); //顶层窗口
    Container contentPane;

    JList jList;  //这是一个列表组件,每一项都是字体的名称
    String[] strings; //存放所有字体的数组
    Font font; // 字体的引用变量

    JTextArea jTextArea; //用于显示字体的式样文本

    Border border, border1; //为图形界面的组件设置边框

    public static void main(String[] args) {
        FontDesign2 fontDesign2 = new FontDesign2();
        fontDesign2.go();
    }

    public void go(){
        contentPane = jFrame.getContentPane();

        //字体名称列表
        strings = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();  //用strings数组存储所有字体名称
        jList = new JList(strings);

        //处理字体的名称
        jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //设置字体单选,即一次只能查看一个字体
        JScrollPane jScrollPane = new JScrollPane(jList); //将列表置于滚动面板中,常规操作
        jList.setForeground(Color.BLUE); //设置字体前景色,即列表项的文字的颜色:蓝色
        jList.setBackground(Color.WHITE); //背景色:白色
        //设置边框
        GradientPaint gradientPaint = new GradientPaint(200f, 15f, Color.GREEN, 350, 15f, Color.RED, false);
        border = BorderFactory.createDashedBorder(gradientPaint, 10f, 10);
        border1 = BorderFactory.createTitledBorder(border, "字体名称");
        ((TitledBorder) border1).setTitleColor(Color.MAGENTA); //设置边框名称的字体颜色
        jScrollPane.setBorder(border1);//滚动面板添加边框

        //文本区模块的处理
        jTextArea = new JTextArea(30,20);  //由于最终放置再滚动面板中,可以不设置参数
        jTextArea.setBackground(Color.WHITE); //背景色
        jTextArea.setForeground(Color.RED);     //前景色
        JScrollPane jScrollPane1 = new JScrollPane(jTextArea); //将文本区置于滚动组件中
        //设置边框
        gradientPaint = new GradientPaint(200f, 15f, Color.GREEN, 350, 15f, Color.RED, false);
        border = BorderFactory.createDashedBorder(gradientPaint, 10f, 10);
        border1 = BorderFactory.createTitledBorder(border, "字体式样");
        ((TitledBorder) border1).setTitleColor(Color.MAGENTA);
        jScrollPane1.setBorder(border1); //为面板添加边框

        //jList的选择事件的处理
        jList.addListSelectionListener(new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent e) {
                String str =(String)jList.getSelectedValue(); //保留所选的列表项
                font = new Font(str, Font.BOLD + Font.ITALIC, 22); //新建字体
                ((TitledBorder) border1).setTitle("字体式样: " + str); //设置文本区边框的名称
                jTextArea.setFont(font); //设置文本区的字体
                //显示于文本区的内容
                jTextArea.setText(str + " 形式的字体:");
                jTextArea.append("\nEnglish: a b c d e g h i j k l  \n中文:这里是字体的式样");
            }
        });

        //布局两个面板
        contentPane.setLayout(new GridLayout(1, 2, 5, 5));
        contentPane.add(jScrollPane);
        contentPane.add(jScrollPane1);

        jFrame.setDefaultCloseOperation(3);
        jFrame.setBounds(400, 50, 700, 500);
        jFrame.setVisible(true);
    }
}

运行结果截图如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.font.*; public class Clipping extends Canvas { public Clipping() { setBackground(Color.white); } public void paint(Graphics g) { Graphics2D g2; g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); int w = getSize().width; int h = getSize().height; FontRenderContext frc = g2.getFontRenderContext(); Font f = new Font("Helvetica",Font.BOLD,w/8); String s = new String("By"); TextLayout tl = new TextLayout(s, f, frc); float sw = (float) tl.getBounds().getWidth(); AffineTransform transform = new AffineTransform(); transform.setToTranslation(w/2-sw/2,h/2); Shape shape = tl.getOutline(transform); g2.setClip(shape); g2.setColor(Color.blue); g2.fill(shape.getBounds()); g2.setColor(Color.yellow); for (int j = shape.getBounds().y; j < shape.getBounds().y + shape.getBounds().height; j=j+3) { Line2D line = new Line2D.Float( 0.0f, (float) j, (float) w, (float) j); g2.draw(line); } } public static void main(String s[]) { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} public void windowClosed(WindowEvent e) {System.exit(0);} }; Frame f = new Frame("2D Text"); f.addWindowListener(l); f.add("Center", new Clipping()); f.pack(); f.setSize(new Dimension(400, 300)); f.show(); } } *********************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值