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);
}
我画了个圆 我想重新写个函数 目的是把这个圆去掉 换个图形 或者换个颜色 这个怎么实现 展开
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.red);
g.fillOval(0, 0,20, 20);
}
我画了个圆 我想重新写个函数 目的是把这个圆去掉 换个图形 或者换个颜色 这个怎么实现 展开
4个回答
展开全部
在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();
}
}
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();
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
我没测试过,不过大致思想是这样的
Graphics g = this.getGraphics();//获取当前使用的画笔
g.setColor(this.getBackground());//设置背景色位画笔颜色
g.fillOval(0, 0, this.getWidth(), this.getHeight());//用背景色填充整个界面,也就是去掉圆
g.setColor(Color.BLACK);//重新设置颜色
//设置图形形状
········
super.paint(g);
}
我没测试过,不过大致思想是这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JPanel panel=new JPanel();
...
...
动态加入组件; //panel不会显示出来
panel.updateUI();()//更新 panel会更新显示,没有这句 没法动态更新组件
...
...
动态加入组件; //panel不会显示出来
panel.updateUI();()//更新 panel会更新显示,没有这句 没法动态更新组件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个用抽象类或者借口都可以很方便的实现 ,具体你可以加我QQ 495904500 问我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询