java如何在JPanel中重绘图像

java绘图是用这个函数publicvoidpaint(Graphicsg){super.paint(g);g.setColor(Color.red);g.fillOva... java绘图是用这个函数
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.red);
g.fillOval(0, 0,20, 20);
}
我画了个圆 我想重新写个函数 目的是把这个圆去掉 换个图形 或者换个颜色 这个怎么实现
展开
 我来答
JesChou
推荐于2017-12-15 · TA获得超过1431个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:381万
展开全部
在JPanel中画图要重写
public void paintComponent(Graphics g){
super.paintComponent(g);
///
}

直接写到paintComponent里面的代码每次都会画图

如果想改的话,应该在画图方法里面加一些控制代码,在其他地方改变一些变量的值,然后调用repaint();这才是正规的做法

比如
public class A extends JPanel{
private Color color=Color.black;
private boolean show=true;
public void paintComponent(Graphics g){
super.paintComponent(g);
if(show){
g.setColor(color);
g.fillOval(0, 0,20, 20);
}
}

public void setOvalColor(Color c){
color=c;
repaint();
}

public void setOvalVivible(boolean v){
show=v;
repaint();
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
19870830wq
2011-04-28 · TA获得超过251个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:170万
展开全部
public void draw(){
Graphics g = this.getGraphics();//获取当前使用的画笔
g.setColor(this.getBackground());//设置背景色位画笔颜色
g.fillOval(0, 0, this.getWidth(), this.getHeight());//用背景色填充整个界面,也就是去掉圆
g.setColor(Color.BLACK);//重新设置颜色
//设置图形形状
········

super.paint(g);
}

我没测试过,不过大致思想是这样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiong305817127
推荐于2016-03-15 · TA获得超过217个赞
知道小有建树答主
回答量:555
采纳率:0%
帮助的人:185万
展开全部
JPanel panel=new JPanel();
...
...
动态加入组件; //panel不会显示出来
panel.updateUI();()//更新 panel会更新显示,没有这句 没法动态更新组件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Nomat
2011-04-28 · TA获得超过314个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:321万
展开全部
这个用抽象类或者借口都可以很方便的实现 ,具体你可以加我QQ 495904500 问我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式