zoukankan      html  css  js  c++  java
  • java 2D 绘图

    简介

    java 2D绘图

    code

    
    /*
     * @Author: your name
     * @Date: 2020-10-28 21:36:29
     * @LastEditTime: 2020-10-28 21:51:30
     * @LastEditors: Please set LastEditors
     * @Description: In User Settings Edit
     * @FilePath: /java/DrawTest.java
     */
    import java.awt.*;
    import java.awt.geom.*;
    import javax.swing.*;
    
    public class DrawTest {
        public static void main(String[] args) {
            EventQueue.invokeLater(() -> {
                JFrame frame = new DrawFrame();
                frame.setTitle("DrawTest");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            });
        }
    }
    
    class DrawFrame extends JFrame {
        public DrawFrame() {
            add(new DrawComponent());
            pack();
        }
    }
    
    class DrawComponent extends JComponent {
        private static final int DEFAULT_WIDTH = 400;
        private static final int DEFAULT_HEIGHT = 400;
    
        public void paintComponent(Graphics g) {
            Graphics2D g2 = (Graphics2D) g;
            // draw a rectangle
            double leftX = 100;
            double topY = 100;
            double width = 200;
            double height = 150;
            Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);
            g2.draw(rect);
    
            // draw the enclosed ellipse
    
            Ellipse2D ellipse = new Ellipse2D.Double();
            ellipse.setFrame(rect);
            g2.draw(ellipse);
    
            // draw a diagonal line
    
            g2.draw(new Line2D.Double(leftX, topY, leftX + width, topY + height)); 
    
            // draw a circle with the same center
    
            double centerX = rect.getCenterX();
            double centerY = rect.getCenterY();
            double radius = 150;
    
            Ellipse2D circle = new Ellipse2D.Double();
            circle.setFrameFromCenter(centerX, centerY, centerX + radius, centerY + radius);
            g2.draw(circle);
        }
    
        public Dimension getPreferredSize() {
            return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        }
    }
    
    

    result

    image

    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    Github挂载大文件解决方案
    UWP 更强大的文件获取能力
    UWP 打开系统设置面板
    Windows 10
    Flutter
    Android笔记(三):View一些值得注意的地方
    Android笔记(二):savedIndstanceState 和 Bundle
    Android笔记(一):this 的表示范围和 Context
    用atom写LaTeX文档
    博客园LaTeX数学公式功能及效果展示
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13893784.html
Copyright © 2011-2022 走看看