Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java GUI 设计 » SWT  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:SWT控件背景透明问题 [Re:Sunteya]
Sunteya





发贴: 22
积分: 0
于 2005-04-03 15:52 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
楼上的大哥不明白我的意思啊,那我就在说一下吧。
这个问题是我在Windows XP下用SWT做Tab时遇到的。

做Tab的时候,如果需要在选项卡(TabItem)上添加多个控件的话,是应该需要先把
这些控件添加到一个Composite中,然后在用TabItem的setControl(Control control) 才
行吧,因为setControl(Control control) 之支持一个控件而且也不支持Layout。

而我们知道在Windows下Composite默认的应该是灰色的背景,而把带有灰色背景的Composite添加到TabItem的中的话,当程序运行的时候由于Windows的经典式样,
出现的Tab本身就是灰色的背景,所以界面看上去很好。

但Windows XP有提供了一个XP 风格的式样,在这个式样下TAB的背景变成了白色的渐变。而原来Composite由于是使用灰色的背景的所以这就和TAB显的格格不入。
同样的问题如果用swing的话只需要对JPanel使用setOpaque(false)就可以使TAB显示
出他原来的白色渐变背景,而这在SWT下我却怎么也做不到。(也就是3楼的那个图)

同样的问题也存在在比如,对于一个想用图案做背景的控件上,放上一个Composite,
想在上面放写控件,想让这些控件显示出来。但实际上的效果却是在图案的背景上
有一个灰色的矩形区域,在这个矩形的区域上才有控件,但原本的意图是要看不到这些
灰色的Composite背景而直接看到 原本的图案背景。

原本我以为蛮简单的只要用SWT.NO_BACKGROUND就可以了,但实际上NO_BACKGROUND把
所有的背景都去掉了。或者说直接就可以看到其他程序了(就像是镂空的效果)。

我本人也是这几天刚刚开始用SWT 做东西,所以还是希望各位有经验的大哥帮忙解决下这个问题,谢谢了




话题树型展开
人气 标题 作者 字数 发贴时间
13873 SWT控件背景透明问题 Sunteya 81 2005-03-30 15:23
9987 Re:SWT控件背景透明问题 Sunteya 75 2005-03-30 15:58
10380 Re:SWT控件背景透明问题 marsbible 41 2005-03-30 16:00
10878 Re:SWT控件背景透明问题 Sunteya 100 2005-03-30 17:06
10713 Re:SWT控件背景透明问题 marsbible 13 2005-03-30 17:23
9644 Re:SWT控件背景透明问题 skyandmusic 135 2005-04-03 11:27
11782 Re:SWT控件背景透明问题 Sunteya 827 2005-04-03 15:52
9899 Re:SWT控件背景透明问题 Sunteya 183 2005-04-03 15:56
9961 Re:SWT控件背景透明问题 yipsilon 2202 2005-04-03 15:58
10044 Re:SWT控件背景透明问题 Sunteya 67 2005-04-03 16:28

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923