zoukankan      html  css  js  c++  java
  • Java之绘制实例

    前面已经介绍过绘制方法

    弧形的绘制:

    package com.caiduping;
    
    import java.awt.Graphics;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    public class DrawSquareFrame extends JFrame {
        DrawSquarePanel squarePanel = new DrawSquarePanel(); // 创建面板类的实例
        
        public static void main(String args[]) { // 主方法
            DrawSquareFrame frame = new DrawSquareFrame(); // 创建窗体类的实例
            frame.setVisible(true); // 显示窗体
        }
        
        public DrawSquareFrame() {
            super(); // 调用超类的构造方法
            setTitle("绘制正方形"); // 窗体标题
            setBounds(100, 100, 280, 180); // 窗体的显示位置和大小
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗体关闭方式
            add(squarePanel); // 将面板类的实例添加到窗体容器中
        }
        
        class DrawSquarePanel extends JPanel {// 创建内部面板类
            public void paint(Graphics g) {   // 重写paint()方法
                g.drawRect(20, 20, 100, 100); // 绘制空心正方形
                g.drawRect(40, 40, 60, 60);   // 绘制空心正方形
                g.drawRect(140, 20, 100, 100);   // 绘制空心正方形
                g.fillRect(160, 40, 60, 60);  // 绘制实心正方形
            }
        }
    }
    

    当然,还是图片的好看些:

    run:

    填充图形的绘制:

    package com.caiduping;
    
    import java.awt.Graphics;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    public class DrawSectorFrame extends JFrame {
        DrawSectorPanel sectorPanel = new DrawSectorPanel(); // 创建面板类的实例
        public static void main(String args[]) { // 主方法
            DrawSectorFrame frame = new DrawSectorFrame(); // 创建窗体类的实例
            frame.setVisible(true); // 显示窗体
        }
        public DrawSectorFrame() {
            super(); // 调用超类的构造方法
            setTitle("绘制填充扇形"); // 窗体标题
            setBounds(100, 100, 278, 184); // 窗体的显示位置和大小
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗体关闭方式
            add(sectorPanel); // 将面板类的实例添加到窗体容器中
        }
        class DrawSectorPanel extends JPanel { // 创建内部面板类
            public void paint(Graphics g) { // 重写paint()方法
                g.fillArc(40, 20, 80, 80, 0, 150);    // 绘制填充扇形
                g.fillArc(140, 20, 80, 80, 180, -150);// 绘制填充扇形
                g.fillArc(40, 40, 80, 80, 0, -110);   // 绘制填充扇形
                g.fillArc(140, 40, 80, 80, 180, 110); // 绘制填充扇形
            }
        }
    } 

    如图:

    run:

    不努力,还要青春干什么?
  • 相关阅读:
    .net framework 3.5 beta 2 / vs 2008 beta 2 有问题!
    提交了 VS 2008 sp1 对 Linq to SQL 的 xml 字段类型支持的一个 bug
    如何在 vista 的 iis 7 上面配置 asp.net 1.1 开发环境
    Linq to sql 中如何进行 left join
    Silverlight 2 beta 2 中目前不支持共享 WCF 的客户端类型
    Scott Guthrie 写的 Silverlight 教程索引
    利用 Xml Literal 功能复制一段 Xml
    Silverlight 2 beta 2 bug 解决办法 (持续更新中)
    C++使用内存映射文件入门
    如何在C++项目中引用Lib文件(VS2005)
  • 原文地址:https://www.cnblogs.com/caidupingblogs/p/5360492.html
Copyright © 2011-2022 走看看