zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    springMVC静态资源
    MyBatis Generator
    使用springMVC时的web.xml配置文件
    Semaphore
    spring注解驱动--组件注册
    第1章 初始Docker容器
    docker面试整理
    第5章 运输层
    验证码
    带进度条的上传
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13893996.html
Copyright © 2011-2022 走看看