| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 686 人关注过本帖
标题:[求助]预览选中的颜色为什么必须要实现paintComponent(Graphics g)方法?
只看楼主 加入收藏
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
 问题点数:0 回复次数:5 
[求助]预览选中的颜色为什么必须要实现paintComponent(Graphics g)方法?
请教~调用JColorChooser.setPreviewPanel(new PrePanel());方法
class PrePanel extends JPanel
{
PrePanel()
{
this.setPreferredSize(new Dimension(300,100));
this.setBorder(BorderFactory.createRaisedBevelBorder());
}

public void paintComponent(Graphics g) //为什么要必须实现这个方法才能显示出选中的颜色?这方法是被谁调用的?
{
Dimension size = getSize();
g.setColor(getForeground());
g.fillRect(0,0,size.width,size.height);
}
}

---------------------
搜索更多相关主题的帖子: Graphics FONT 颜色 PrePanel 预览 
2007-03-03 10:29
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
这个paintComponent()叫做回调方法,不是由你自己去用的.
事实上paintComponent()是由paint()方法调用的,而paint()方法是由EDT(Event dispatching Thread)调用.

不知道你的Swing与Graphics2D学到什么程度了.
其实你只要知道setPreviewPanel的工作原理,也不是一定要去覆写paintComponent方法的.
比如这样应该也可以实现楼主代码的同样效果:

class PrePanel extends JPanel{
PrePanel(){
setPreferredSize(new Dimension(300,100));
set...
}
public void setForeground(Color c){
setBackground(c);
}
}

ps:我其实没用过JColorChooser,上面的代码我也是根据JAVA API DOCS的说明随手写的,没有测试过,不能保证完全没错.

My BlogClick Me
2007-03-03 11:16
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
谢谢,你说的很详细了...但我不是太明白原理..

只要是GUI方面的我都没学过...现在自己慢慢学呢...

谢谢Eastsun

我在说's blog   http://www..cn
2007-03-03 11:37
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
能否推荐我一本学习Swing与Graphics2D方面能入门的书

我在说's blog   http://www..cn
2007-03-03 11:41
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
这个,我觉得Core Java 2 里面对Swing与Graphics2D讲的还不错的.
个人感觉最好的还是SUN官方网站上的Swing tutorial了.

[此贴子已经被作者于2007-3-3 11:54:19编辑过]


My BlogClick Me
2007-03-03 11:51
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
very 谢谢!
我去好好看看....

我在说's blog   http://www..cn
2007-03-03 12:44
快速回复:[求助]预览选中的颜色为什么必须要实现paintComponent(Graphics g)方法 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035404 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved