使用java画圆要用到绘图类Graphics,下面是实例代码和运行效果:
我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、泗水ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的泗水网站制作公司
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编程工具,运行效果如下:
java swing中指定圆的颜色,最常用的有两种方法
方法一:画圆的时候就指定画笔的颜色,那么画出的颜色就是制定的颜色。
public void paint(Graphics g) {
g.setColor(Color.BLUE);
g.fillOval(50, 8, 50, 50);
}
这种方法的优点: 代码码量少,简洁
缺点:指定颜色后,不好修改。不够灵活
方法二:指定构造方法中有一个Color变量。设置get set方法
class MyJPanel extends JPanel{
Color c;
public MyJPanel(Color c) {
this.c = c ;
}
@Override
public void paint(Graphics g) {
g.setColor(c);
g.fillOval(50, 8, 50, 50);
}
public Color getC() {
return c;
}
public void setC(Color c) {
this.c = c;
}
}
方法二的优点:方便灵活,能通过set get方法轻松修改圆圈颜色
缺点:代码稍多,改变颜色后需要repaint()一下
代码案例供参考
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Circle extends JFrame{
MyJPanel jp;
public Circle() {
jp = new MyJPanel(Color.RED);
this.setLayout(new BorderLayout());
this.add(jp,BorderLayout.CENTER);
this.setBounds(300, 200, 150, 100);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
try {
Thread.sleep(500);
jp.setC(new Color(210,250,0));
jp.repaint();
} catch (InterruptedException e) {
}
}
public static void main(String[] args) {
new Circle();
}
}
class MyJPanel extends JPanel{
Color c;
public MyJPanel(Color c) {
this.c = c ;
}
@Override
public void paint(Graphics g) {
g.setColor(c);
g.fillOval(50, 8, 50, 50);
}
public Color getC() {
return c;
}
public void setC(Color c) {
this.c = c;
}
}
import java.applet.Applet;
import java.awt.Graphics;
public class draw extends Applet{
public void paint(Graphics g){
g.drawOval(100,200,50,50);
或者将pain里面改为g.drawRoundRect(120,200,30,30,30,30);
也就是说drawOval和drawRoundRect都可以画圆.
代码如下:
import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class TestSw extends JFrame { public static void main(String[] args) { new TestSw(); } public TestSw(){ super("Test"); this.setSize(new Dimension(400,300)); this.setContentPane(new Mypane()); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } class Mypane extends JPanel{ public void paint(Graphics g) { super.paint(g); g.setColor(Color.red); g.setXORMode(Color.white); g.drawArc(20, 20, 100, 100, 0, 360); ///此方法将画一个直径100的圆.红色. } } }