dedecms 营销网站模板傻瓜式建站平台
news/
2025/9/26 23:22:54/
文章来源:
dedecms 营销网站模板,傻瓜式建站平台,网站备案不能访问,福建老区建设网站正常的 RGB 颜色的有效范围#xff0c;是从 0 到 16,777,215 (HFFFFFF)。每种颜色的设置值#xff08;属性或参数#xff09;都是一个四字节的整数。对于这个范围内的数#xff0c;其高字节都是 0#xff0c;而低三个字节#xff0c;从最低字节到第三个字节是从 0 到 16,777,215 (HFFFFFF)。每种颜色的设置值属性或参数都是一个四字节的整数。对于这个 范围内的数其高字节都是 0而低三个字节从最低字节到第三个字节分别定义了红、绿、蓝三种颜色的值。红、绿、蓝三种成分都 是用 0 到 255 (HFF) 之间的数表示。因此可以用十六进制数按照下述语法来指定颜色 HBBGGRR BB 指定蓝颜色的值GG 指定绿颜色的值RR 指定红颜色的值。每个数段都是两位十六进制数即从 00 到 FF。H808080将最高位设置 为 1就改变了颜色值的含义颜色值不再代表一种 RGB 颜色而是一种从 Windows控制面板指定的环境范围颜色。这些数值对应的系统 颜色范围是从 H80000000 到 H80000015。 以下就是这些特殊的系统颜色值及其含义 Constant Value Description vbScrollBars 0x80000000 Scroll bar color vbDesktop 0x80000001 Desktop color vbActiveTitleBar 0x80000002 Color of the title bar for the active window vbInactiveTitleBar 0x80000003 Color of the title bar for the inactive window vbMenuBar 0x80000004 Menu background color vbWindowBackground 0x80000005 Window background color vbWindowFrame 0x80000006 Window frame color vbMenuText 0x80000007 Color of text on menus vbWindowText 0x80000008 Color of text in windows vbTitleBarText 0x80000009 Color of text in caption, size box, and scroll arrow vbActiveBorder 0x8000000A Border color of active window vbInactiveBorder 0x8000000B Border color of inactive window vbApplicationWorkspace 0x8000000C Background color of multiple-document interface (MDI) applications vbHighlight 0x8000000D Background color of items selected in a control vbHighlightText 0x8000000E Text color of items selected in a control vbButtonFace 0x8000000F Color of shading on the face of command buttons vbButtonShadow 0x80000010 Color of shading on the edge of command buttons vbGrayText 0x80000011 Grayed (disabled) text vbButtonText 0x80000012 Text color on push buttons vbInactiveCaptionText 0x80000013 Color of text in an inactive caption vb3DHighlight 0x80000014 Highlight color for 3-D display elements vb3DDKShadow 0x80000015 Darkest shadow color for 3-D display elements vb3DLight 0x80000016 Second lightest 3-D color after vb3DHighlight vbInfoText 0x80000017 Color of text in ToolTips vbInfoBackground 0x80000018 Background color of ToolTips 首先Java中的颜色的整数值是这样组成的0~7位是蓝色值, 8~15位是绿色值, 16~23位是红色值, 24~31位是Alpha值。一个标准的RGB 值转成Java的需要设置最高8位为FF默认的Alpha值。此外对于像VB中这些特殊的系统颜色来说Java中的SystemColor被用来处理 各个操作系统不同的系统颜色。 public final static SystemColor desktop new SystemColor((byte)DESKTOP);public final static SystemColor activeCaption new SystemColor((byte)ACTIVE_CAPTION);public final static SystemColor activeCaptionText new SystemColor((byte)ACTIVE_CAPTION_TEXT);...private static int[] systemColors;static {updateSystemColors();}/*** Called from init toolkit to update the above systemColors cache.*/private static void updateSystemColors() {if (!GraphicsEnvironment.isHeadless()) {Toolkit.getDefaultToolkit().loadSystemColors(systemColors);}}private SystemColor(byte index) {super(0, 0, 0);value index;}public int getRGB() {return systemColors[value];} SystemColor通过静态域初始化系统颜色的数组我们可以利用它的初始化结果作为当前操作系统的系统颜色集合来完成VB颜色到Java颜色的转换。 package com.cdai.jd;import java.awt.SystemColor;
import java.util.HashMap;public class SystemColorTest {public static void main(String[] args) {SystemColorTest tester new SystemColorTest();// 1.Test for Palette colorSystem.out.println(tester.convertVB2JavaColor(0x80000007) SystemColor.menuText.getRGB());// 2.Test for System colorSystem.out.println(tester.convertVB2JavaColor(0x004207) (0xFF | 0x4207));// 3.Test for invalid input argumenttry {System.out.println(tester.convertVB2JavaColor(0x8100000A));} catch (Exception e) {System.out.println(Expect exception here.);}}private static HashMapInteger, Integer VB2JavaSystemColorMapping new HashMapInteger, Integer();/*** Color constants refer to:* http://msdn.microsoft.com/en-us/library/office/gg264801.aspx*/static {VB2JavaSystemColorMapping.put(0x80000000, SystemColor.scrollbar.getRGB());VB2JavaSystemColorMapping.put(0x80000001, SystemColor.desktop.getRGB());VB2JavaSystemColorMapping.put(0x80000002, SystemColor.activeCaption.getRGB());VB2JavaSystemColorMapping.put(0x80000003, SystemColor.inactiveCaption.getRGB());VB2JavaSystemColorMapping.put(0x80000004, SystemColor.menu.getRGB());VB2JavaSystemColorMapping.put(0x80000005, SystemColor.window.getRGB());VB2JavaSystemColorMapping.put(0x80000006, SystemColor.scrollbar.getRGB()); //Window frame color?VB2JavaSystemColorMapping.put(0x80000007, SystemColor.menuText.getRGB());VB2JavaSystemColorMapping.put(0x80000008, SystemColor.windowText.getRGB());VB2JavaSystemColorMapping.put(0x80000009, SystemColor.activeCaptionText.getRGB());VB2JavaSystemColorMapping.put(0x8000000A, SystemColor.activeCaptionBorder.getRGB());VB2JavaSystemColorMapping.put(0x8000000B, SystemColor.inactiveCaptionBorder.getRGB());VB2JavaSystemColorMapping.put(0x8000000C, SystemColor.scrollbar.getRGB()); //Background color of multiple-document interface (MDI) applications?VB2JavaSystemColorMapping.put(0x8000000D, SystemColor.textHighlight.getRGB());VB2JavaSystemColorMapping.put(0x8000000E, SystemColor.textHighlightText.getRGB());VB2JavaSystemColorMapping.put(0x8000000F, SystemColor.scrollbar.getRGB()); //Color of shading on the face of command buttons?VB2JavaSystemColorMapping.put(0x80000010, SystemColor.scrollbar.getRGB()); //Color of shading on the edge of command buttons?VB2JavaSystemColorMapping.put(0x80000011, SystemColor.textInactiveText.getRGB());VB2JavaSystemColorMapping.put(0x80000012, SystemColor.controlText.getRGB());VB2JavaSystemColorMapping.put(0x80000013, SystemColor.inactiveCaptionText.getRGB());VB2JavaSystemColorMapping.put(0x80000014, SystemColor.controlHighlight.getRGB());VB2JavaSystemColorMapping.put(0x80000015, SystemColor.controlDkShadow.getRGB());VB2JavaSystemColorMapping.put(0x80000016, SystemColor.controlLtHighlight.getRGB());VB2JavaSystemColorMapping.put(0x80000017, SystemColor.infoText.getRGB());VB2JavaSystemColorMapping.put(0x80000018, SystemColor.info.getRGB());}/*** Convert color hex value in VB to Java color hex.* * param vbColorHex 0x80000000 - 0x80000018 for VB system color, * 0x00AB1234 for palette color* * return Bits 24-31 are alpha (FF as default), * 16-23 are red, * 8-15 are green, * 0-7 are blue*/public int convertVB2JavaColor(int vbColorHex) {int javaColorHex;int highByte (vbColorHex 24);if (highByte 0) { // Palette color if high byte is 0.javaColorHex 0xFF | vbColorHex;}else if (highByte 128) { // System color if highest bit is 1javaColorHex VB2JavaSystemColorMapping.get(vbColorHex);}else { throw new IllegalArgumentException(Illegal hex color argument: vbColorHex);}return javaColorHex;}} 简单跑了下不知道是否正确有没有人有写这方面代码的经验 转载于:https://www.cnblogs.com/xiaomaohai/archive/2012/10/14/6157800.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918890.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!