关于重写JPanel的paint方法的问题,麻烦大家看看。

benq998 2005-03-21 09:24:28
我写了一个applet,里面加了一个组件,这个组件继承了JPanel类,并且重写了paint方法,可是在运行的时候这个组件显示了,但是paint方法却没有执行。加入其他的什么也不该,只把组件的基类JPanel改成Panel就一切正常。可以由于需要做成透明组件背景,不需得用JPanel基类,麻烦大家帮忙了。
...全文
362 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vgvg 2005-03-21
  • 打赏
  • 举报
回复
你换成paintComponent(java.awt.Graphics) 试一下
benq998 2005-03-21
  • 打赏
  • 举报
回复
经过我多次测试,如果把B类里的paint函数去掉,C类里的paint函数就一切正常,这就说明,在B里的paint还没有执行完,C里的paint就要执行,结果冲突了,可是我现在找不到办法能让B里的paint执行完了在去执行C里的paint。

请高手请教。
benq998 2005-03-21
  • 打赏
  • 举报
回复
299行的代码,实在的没法帖,我把大概的情况写一下,可能有笔误的地方,程序运行事,就是C类离的paint方法执行不正常。
public class A extends Applet
{
public void init()
{
add(new B());
}
class B extends Panel
{
public B()
{
add(new C());
}
public void paint(Graphics g)
{
...
}
class C extends JPanel
{
public void paint(Graphics g)
{
g.drawImage(....);
}
}
}
}
xq_zz 2005-03-21
  • 打赏
  • 举报
回复
Panel上可以加JPanel吗,没有试过哦,把代码贴出来看看
yangbc 2005-03-21
  • 打赏
  • 举报
回复
设一个全局变量行不行?判断这个变量的状态
benq998 2005-03-21
  • 打赏
  • 举报
回复
我已经发现问题了,我是在applet上加了一个Panel,然后又在panel加了一个JPanel,可是在Panel的paint方法还没执行的时候,可能JPanel的paint方法就轮到执行了,结果导致不能正常运行,请问,我如何能判断Panel的paint方法是否已经执行完毕,谢谢!
benq998 2005-03-21
  • 打赏
  • 举报
回复
不行啊,还是不正常,现在这个paint方法有的时候还能正常运行,不过大部分时候都是不正常运行。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧