十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
改一下那个MyJpanel类代码就可以啊
创新互联建站专注于樟树网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供樟树营销型网站建设,樟树网站制作、樟树网页设计、樟树网站官网定制、小程序定制开发服务,打造樟树网络公司原创品牌,更为您提供樟树网站排名全网营销落地服务。
/*内部继承JPanel类*/
class MyJPanel extends JPanel {
protected void paintComponent(Graphics g) {
Color c = g.getColor();
g.setColor(Color.blue);
g.fillRect(0, 0, 600, 500);
g.setColor(Color.red);
g.fillOval(200, 100, 300, 300);
}
}
import java.awt.*;
import javax.swing.*;
public class TankWar extends JFrame {
public TankWar (String title) {
super(title);
this.setSize(600,500);
this.setLocationRelativeTo(null); //设置窗口的位置屏幕中间
this.setResizable(false); //设置为不可改变大小
this.setDefaultCloseOperation(EXIT_ON_CLOSE); //设置关闭事件
MyJPanel myJPanel = new MyJPanel(); //创建一个MyJPanel实例对象myJPanel
myJPanel.setBackground(Color.blue);//设置myJPanel的背景颜色
this.add(myJPanel);
this.setVisible(true);
}
/*内部继承JPanel类*/
class MyJPanel extends JPanel {
protected void paintComponent(Graphics g) {
Color c = g.getColor();
g.setColor(Color.red);
g.fillOval(200, 100, 300, 300);
g.setColor(c);
}
}
public static void main(String args[]){
new TankWar ("坦克大战");
}
}
/*
*drawCircle.java
*拖动鼠标画空心圆或实心圆
*/
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class drawCircle extends Applet implements MouseListener,MouseMotionListener
{
int x1,y1,x2,y2;
CheckboxGroup checkboxGroup1=new CheckboxGroup();
Checkbox checkbox1,checkbox2;
public void init(){
checkbox1=new Checkbox("画空心圆",checkboxGroup1,true);
checkbox2=new Checkbox("画实心圆",checkboxGroup1,false);
add(checkbox1);
add(checkbox2);
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g){
if(checkbox1.getState()==true){//画空心圆
int r=(int)Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
g.drawOval(x1,y1,r,r);
}
if(checkbox2.getState()==true){//画实心圆
int r=(int)Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
g.fillOval(x1,y1,r,r);
}
}
//implementation of MouseListener
public void mousePressed(MouseEvent e){
x1=e.getX();
y1=e.getY();
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
//implementation of MouseMotionEvent
public void mouseDragged(MouseEvent e){
x2=e.getX();
y2=e.getY();
repaint();
}
public void mouseMoved(MouseEvent e){}
}
使用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编程工具,运行效果如下: