j*a 发帖数: 14423 | |
s********o 发帖数: 2 | 2 gui是单线程的,不管你建几个node,paint是ui一个线程里画,所以不能sleep掉,如
果你要半秒变一下背景,需要用timer
【在 j*a 的大作中提到】 : http://pastebin.com/m3a37d53d : 不知道为啥n1显示不出来 是哪里错了呢?
|
F****n 发帖数: 3271 | 3 The reason is you did not set up a correct layout manager.
First you should not directly add components to a JFrame. Instead you should
add it to JFrame.getContentPane().
Second if you did not set up a LayoutManager JFrame will use its own. In
this case it's one variant of Overlay Manager. add
n2.setBorder(BorderFactory.createLineBorder(Color.red)) to see what your n2
actually occupy.
【在 j*a 的大作中提到】 : http://pastebin.com/m3a37d53d : 不知道为啥n1显示不出来 是哪里错了呢?
|
c*****t 发帖数: 1879 | 4
should
Since 1.5, JFrame.add would redirect to JFrame.getContentPane ().add ().
By default it is BorderLayout, which without parameter would assume
CENTER.
n2
This is a good idea.
Additionally, the author should call repaint () after changing the
foreground / background colors.
【在 F****n 的大作中提到】 : The reason is you did not set up a correct layout manager. : First you should not directly add components to a JFrame. Instead you should : add it to JFrame.getContentPane(). : Second if you did not set up a LayoutManager JFrame will use its own. In : this case it's one variant of Overlay Manager. add : n2.setBorder(BorderFactory.createLineBorder(Color.red)) to see what your n2 : actually occupy.
|
c*****t 发帖数: 1879 | 5 Wrong. He started a new thread for the run() function.
【在 s********o 的大作中提到】 : gui是单线程的,不管你建几个node,paint是ui一个线程里画,所以不能sleep掉,如 : 果你要半秒变一下背景,需要用timer
|
j*a 发帖数: 14423 | 6 谢谢各位的回复。
实际上我只是想定制一个jcomponent,要能实现鼠标drag的时候它能跟着走就可以了。
于是我加了Node的两个实例,但是却只出现了一个。这里面有很多问题
0.Node1实例看不见。为此我加了Thread改颜色希望能在屏幕上找到它,未果。
1.contentpane.add()不管用
2.我的listener是加到Node的,debug的时候却发现整个jframe的drag都被Node2实例接
收到了,Node1一点反应也没有
3.改fg/bg后加repaint()也不管用
我最希望解决问题0
swing新手 看了半天 还在蛮撞阶段 sorry
【在 j*a 的大作中提到】 : http://pastebin.com/m3a37d53d : 不知道为啥n1显示不出来 是哪里错了呢?
|
F****n 发帖数: 3271 | 7 I answered your question. You did not set appropriate LayoutManager and as a
result every Component would occupy all your space.
【在 j*a 的大作中提到】 : 谢谢各位的回复。 : 实际上我只是想定制一个jcomponent,要能实现鼠标drag的时候它能跟着走就可以了。 : 于是我加了Node的两个实例,但是却只出现了一个。这里面有很多问题 : 0.Node1实例看不见。为此我加了Thread改颜色希望能在屏幕上找到它,未果。 : 1.contentpane.add()不管用 : 2.我的listener是加到Node的,debug的时候却发现整个jframe的drag都被Node2实例接 : 收到了,Node1一点反应也没有 : 3.改fg/bg后加repaint()也不管用 : 我最希望解决问题0 : swing新手 看了半天 还在蛮撞阶段 sorry
|