在Java中如何用程序画一个圆

在Java中如何用程序画一个圆,第1张

使用java画圆要用到绘图类Graphics,下面是实例代码和运行效果

package com.dikea.demo01

import java.awt.*

import javax.swing.*

// 慎滑java绘图原理

public class demo_01  extends JFrame {

MyPanel mp = null

public static void main(String[] args) {

// TODO 自动生成的方法存根

demo_01 demo01 = new demo_01()

}

public demo_01(){

mp = new MyPanel()

this.add(mp)

this.setSize(400, 300)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

this.setVisible(true)

}

}

// 定义一个MyPanel面板,用于绘图区域

class MyPanel extends JPanel{

//覆盖JPanel

// Graphics 是绘图的重要类,可以理解成一支画笔

public void paint(Graphics g){

//  1. 调用父类函数完成初始化任务

//  这句话不可以少

super.paint(g)

// 先画出游册一个圆圈

g.drawOval(100, 100, 30, 30)

}

}

代码复神孝宏制进ide编程工具,运行效果如下:

// 粗细,颜色都符合你的,你就不要不讲诚信了,我雹缺也跟你没有仇,你视而不见就没有必要了

import java.awt.BasicStroke

import java.awt.BorderLayout

import java.awt.FlowLayout

import java.awt.Frame

import java.awt.Graphics

import java.awt.Graphics2D

import java.awt.Label

import java.awt.Panel

import java.awt.event.MouseAdapter

import java.awt.event.MouseEvent

import java.awt.event.MouseMotionListener

import java.awt.event.WindowAdapter

import java.awt.event.WindowEvent

 

public class MouseDrawPanel extends Frame

{

    private static final long serialVersionUID = 1L

    MouseEvent e = null

    static int startX = -1

    static int startY = -1

    static int endX = -1

    static int endY = -1

 

    public MouseDrawPanel ( String title )

    {

        setTitle (title)

        setLayout (new BorderLayout ())

        setResizable (false)

        setSize (500, 400)

        setLocationRelativeTo (null)

        addWindowListener (new WindowAdapter ()

        {

            @Override

            public void windowClosing ( WindowEvent e )

            {

                System.exit (0)

            }

        })

    }

 

    @Override

    public void paintComponents ( Graphics g )

    {

        float lineWidth = 8.0f

        ((Graphics2D)g).setStroke(new BasicStroke(lineWidth))

        g.drawLine (startX, startY, endX, endY)

        g.dispose ()

    }

 

    public static void main ( String[] args )

    {

        final MouseDrawPanel mdp = new MouseDrawPanel ("Use Mouse Draw")

        Panel panel = new Panel ()

  伍镇      panel.setLayout (new FlowLayout (FlowLayout.LEFT))

        Label startL = new Label ("start: ")

        Label endL = new Label ("end: ")

        final Label nowL = new Label ("now: ")

        final Label startR = new Label ("000,000")

        final Label endR = new Label ("000,000")

        final Label nowN = new Label ("000,000")

        panel.add (startL)

        panel.add (startR)

        panel.add (endL)

        panel.add (endR)

        panel.add (nowL)

        panel.add (nowN)

        mdp.add (panel, "South")

        mdp.addMouseMotionListener (new MouseMotionListener ()

        {

            @Override

            public void mouseMoved ( MouseEvent e )

            {

                nowN.setText (e.getX () + " , " + e.getY ())

            }

 

            @Override

            public void mouseDragged ( MouseEvent e )

       源橘辩     {

                endX = e.getX ()

                endY = e.getY ()

                mdp.paintComponents (mdp.getGraphics ())

                startX = endX

                startY = endY

                endR.setText (endX + " , " + endY)

            }

        })

        mdp.addMouseListener (new MouseAdapter ()

        {

            @Override

            public void mousePressed ( MouseEvent e )

            {

                startX = e.getX ()

                startY = e.getY ()

                startR.setText (startX + " , " + startY)

            }

 

            @Override

            public void mouseReleased ( MouseEvent e )

            {

                endR.setText (e.getX () + " , " + e.getY ())

            }

        })

        mdp.setVisible (true)

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8229712.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存