zoukankan      html  css  js  c++  java
  • Java Graphics2D 画出文字描边效果

    在CSDN看到的,在此记下。

    (http://bbs.csdn.net/topics/390703095)

    import javax.swing.*;
    import java.awt.*;
    import java.awt.font.GlyphVector;
     
    public class Test extends JComponent {
     
      public static void main(String[] args) {
     
        SwingUtilities.invokeLater(new Runnable() {
     
          @Override
          public void run() {
     
            JFrame test new JFrame("Test");
     
            test.setContentPane(new Test());
            test.pack();
            test.setLocationRelativeTo(null);
            test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            test.setVisible(true);
          }
        });
      }
     
      Test() {
     
        setPreferredSize(new Dimension(800, 600));
      }
     
      @Override
      protected void paintComponent(Graphics g) {
     
        Font f new Font("Courier New", Font.BOLD, 140);
        GlyphVector v = f.createGlyphVector(getFontMetrics(f).getFontRenderContext(), "Hello");
        Shape shape = v.getOutline();
     
        Rectangle bounds = shape.getBounds();
     
        Graphics2D gg = (Graphics2D) g;
        gg.translate(
                (getWidth() - bounds.width) / 2 - bounds.x,
                (getHeight() - bounds.height) / 2 - bounds.y
        );
        gg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        gg.setColor(Color.WHITE);
        gg.fill(shape);
        gg.setColor(Color.BLUE.darker().darker());
        gg.setStroke(new BasicStroke(3));
        gg.draw(shape);
      }
    }

  • 相关阅读:
    开发时需要安装的插件
    update svn cache 慢
    eclipse cut copy paste plugin
    eclipse怎么自定义工具栏
    Eclipse Class Decompiler——Java反编译插件(转)
    2014年下半年软考系统架构设计师考试试题
    IT痴汉的工作现状36-做好准备再上路
    JSP简单练习-EL获取表单数据
    !HDU 1078 FatMouse and Cheese-dp-(记忆化搜索)
    iOS百度地图
  • 原文地址:https://www.cnblogs.com/wuqianling/p/5972633.html
Copyright © 2011-2022 走看看