java中的swing每次调用repaint后是否都会覆盖背景?
publicvoidpaint(Graphicsg){jp.setBackground(Color.LIGHT_GRAY);g.setColor(Color.BLACK)...
public void paint(Graphics g) {
jp.setBackground(Color.LIGHT_GRAY);
g.setColor(Color.BLACK);
g.fillOval(3, 25, 15, 15);
}
如上,只显示背景色,而没有画出圆,但在paint外面设置好背景色每次调用paint()方法后背景色又会改变,如何解决这个问题?
JPanel jp = new JPanel(); 展开
jp.setBackground(Color.LIGHT_GRAY);
g.setColor(Color.BLACK);
g.fillOval(3, 25, 15, 15);
}
如上,只显示背景色,而没有画出圆,但在paint外面设置好背景色每次调用paint()方法后背景色又会改变,如何解决这个问题?
JPanel jp = new JPanel(); 展开
3个回答
展开全部
在paint方法里面,最前面加上super.paint(g);
更多追问追答
追问
这样做了,没什么用啊依然只有背景
追答
我估计圆是被jp挡住的!你把jp设置成透明,看看是不是被挡住的!~~~如果你想实现jp背景,在背景上画圆,那你要this.getLayerPane(),先获取这个容器的底层,把jp加到这个底层上面!这样圆就不会被覆盖
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
setBackground()方法在实现了jp后调用,不要在paint方法里调用,所以这里先删除了再说
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jp是什么东西,给详细些说明。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询