• java 字符串


    简介

    java 绘制字符串
    字符串有相关知识点,基线,上坡线和下坡线。
    参考图主要是英文字符有这个。

    code

    
    import java.awt.*;
    import java.awt.geom.*;
    import java.awt.font.*;
    import javax.swing.*;
    
    public class FontTest {
        public static void main(String[] args) {
            EventQueue.invokeLater(() -> {
                JFrame frame = new FontFrame();
                frame.setTitle("FontTest");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            });
        }
    }
    
    class FontFrame extends JFrame {
        public FontFrame() {
            add(new FontComponent());
            pack();
        }
    }
    
    class FontComponent extends JComponent {
        private static final int DEFAULT_WIDTH = 300;
        private static final int DEFAULT_HEIGHT = 200;
    
        public void paintComponent(Graphics g) {
            Graphics2D g2 = (Graphics2D) g;
            String message = "Hello, World!";
    
            Font f = new Font("Serif", Font.BOLD, 36);
            g2.setFont(f);
    
            // measure the size of the message
    
            FontRenderContext context = g2.getFontRenderContext();
            Rectangle2D bounds = f.getStringBounds(message, context);
    
            // set (x,y) = top left corner of text
            double x = (getWidth() - bounds.getWidth()) / 2;
            double y = (getHeight() - bounds.getHeight()) / 2;
    
            // add ascent to y to reach the baseline
            double ascent = -bounds.getY();
            double baseY = y + ascent;
    
            // draw the message
    
            g2.drawString(message, (int) x, (int) baseY);
            g2.setPaint(Color.LIGHT_GRAY);
    
            // draw the baseline
            g2.draw(new Line2D.Double(x, baseY, x + bounds.getWidth(), baseY));
    
            // draw the enclosing rectangle
    
            Rectangle2D rect = new Rectangle2D.Double(x, y, bounds.getWidth(), bounds.getHeight());
            g2.draw(rect);
        }
    
        public Dimension getPreferredSize() {
            return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        }
    }
    
    

    image

    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    Python该怎么学?
    Python招聘需求
    最短路合集
    最小生成树prim算法
    最小生成树kruskal算法
    React-redux原理探索
    Redux原理探索
    头条前端面试题汇总,会持续更新
    阿里前面面试题(最全),持续更新中
    ASP.Net MVC3/4中Model验证错误信息的本地化
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13893996.html
Copyright © 2020-2023  润新知