
使用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)
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)