作者TonyQ (骨头)
看板java
标题Re: [问题] 覆盖的问题
时间Sat Jun 14 08:17:03 2008
※ 引述《Nadleeh004 (螃蟹→寄居蟹)》之铭言:
: 小的我不清楚这是为什麽
: 就是我在JPanel里有一个paint function
: 其中有一个drawImage
: 不知为何...
: 如果我把drawImage这行注解掉的话
: 其执行结果是
: http://myweb.ncku.edu.tw/~h3495136/board2.JPG
: 但如果不注解的话却是...
: http://myweb.ncku.edu.tw/~h3495136/board1.JPG
: 这是为什麽
: 我在另外一个继承JFrame的class里
: 明明是最後一个add此JPanel
: 不是应该会被放在最下面吗?
: 就算不是...
: 把此JPanel移到最前面...
: 结果还是一样...
: 这应该是drawImage的问题吧?
你用的是paint(Graphics g),paint(Graphics g) ,
是每次repaint的时候,无差别呼叫来复写画面。 =.=
依你的设计观念,
应该是放在paintComponent(Graphics g),会比较好。
paintComponent() 就把自己当一个元件来绘图,
目的就是绘出这个元件。
paint则是把整个画面当作一个画板,
在上面画出想要的东西。
paintComponent()
我知道是用 iterator的方式依顺序call,paint我不太清楚...
记得以前有研究过,不过忘了=.=
我只记得後来要用paint我就直接用JFrame而不用JComponent,
要做JComponent就用paintComponent()。
打到这里突然想到,问题应该不是出在上面说的部份,
依据承载关系的话,paint只要是在JFrame上,
而且大小设好的话,不管怎麽做都会出现这状况吧。
=.=
重点不是先add後add,而是你希望他显示在JPanel上面的,
就要add在JPanel上啊,他又不是说谁先加就谁赢。orz
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.27.68
※ 编辑: TonyQ 来自: 220.134.27.68 (06/14 08:23)
1F:推 Nadleeh004:(~跪)感谢大大!!! 虽然还不是很懂...看try try看 06/14 08:38
2F:推 Nadleeh004: 但(打错字) 06/14 08:44