在java中如何绘画圆形

Python099

在java中如何绘画圆形,第1张

/*

* java绘图原理

*/

package Yousphu

import java.awt.*

import javax.swing.*

public class Demo9_1 extends JFrame {

MyPanel mp=null

public static void main(String[] args) {

// TODO Auto-generated method stub

Demo9_1 demo = new Demo9_1()

}

public Demo9_1()

{

mp=new MyPanel()

this.add(mp)

this.setSize(300, 400)

this.setDefaultCloseOperation(EXIT_ON_CLOSE)

this.setVisible(true)

}

}

//定义一个吗panel、用于绘制和实现图像

class MyPanel extends JPanel

{

//覆盖jpanel的paint方法

//Graphics是汇入的中药类,你可以吧他理解成画笔

public void paint(Graphics g)

{

//调用父类函数进行初始化,绝对不可少

super.paint(g)

//先画一个园

g.drawOval(10, 10, 30, 30)

/*

g.drawRect(30, 30, 40, 40)

g.setColor(Color.blue)

g.drawString("fdsf", 40, 40)*/

//Image im= Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/aaa.jpg"))

//g.drawImage(im, 20, 20, 200, 200,this)

}

}

使用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编程工具,运行效果如下:

我基于你原来画图的方法,添加了事件触发的命令b[j].setActionCommand("b" + j)否则你不能在事件响应处理的方法中使用e.getActionCommand(),而且字符串的比较用equals方法比较好。现在可以运行了,你可以看一下:

import java.applet.Applet

import java.awt.*

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

public class drawing extends Applet implements ActionListener {

Button b[] = new Button[5]

String fontname = "仿宋_GB2312"

int style = Font.PLAIN

int size = 24

int index = 0

Font myfont

public void init() {

setSize(700,700)

myfont = new Font(fontname, style, size)

b[0] = new Button("扇形")

b[1] = new Button("圆形")

b[2] = new Button("三角形")

b[3] = new Button("长方形")

b[4] = new Button("椭圆形")

for (int j = 0j <b.lengthj++) {

b[j].setBounds(10, 10, 50, 20)

b[j].addActionListener(this)

b[j].setActionCommand("b" + j)

add(b[j])

}

}

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("b0")) {

index = 0

repaint()

}

if (e.getActionCommand().equals("b1")) {

index = 1

repaint()

}

if (e.getActionCommand().equals("b2")) {

index = 2

repaint()

}

if (e.getActionCommand().equals("b3")) {

index = 3

repaint()

}

if (e.getActionCommand().equals("b4")) {

index = 4

repaint()

}

}

public void paint(Graphics g) {

switch (index) {

case 0:

g.fillArc(0, 60, 80, 60, 30, 120)

break

case 1:

g.drawOval( 300, 50, 60, 60)

break

case 2:

Polygon filledPolygon = new Polygon()

filledPolygon.addPoint(380, 50)

filledPolygon.addPoint(380, 110)

filledPolygon.addPoint(450, 90)

g.drawPolygon(filledPolygon)

break

case 3:

g.drawRect( 200, 50, 80, 60)

break

case 4:

g.drawOval(100, 50, 80, 60)

break

default:

g.fillArc(0, 60, 80, 60, 30, 120)

break

}

}

/*

* public void paint(Graphics g) { g.fillArc( 0, 60, 80, 60, 30, 120)

* //绘制扇形 g.drawOval( 100, 50, 80, 60)g.drawRect( 200, 50, 80, 60)

* g.drawOval( 300, 50, 60, 60)Polygon filledPolygon=new Polygon()

* filledPolygon.addPoint(380,50)filledPolygon.addPoint(380,110)

* filledPolygon.addPoint(450,90)g.drawPolygon(filledPolygon)}

*/

}