George World

技术改变明天,创新塑造未来! i(at)huadev.com Follow Me: http://t.sina.com.cn/georgeworld

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  28 随笔 :: 0 文章 :: 5 评论 :: 0 Trackbacks

2010年4月19日 #

使用NetBeans Platform开发软件,你会发现软件标题栏总是类似这样的:
NetBeans Platform build 20120812
那么,如果将NetBeans Platform应用的标题栏换成自己的内容呢,Come on,下面一步一步来:

第一步:进入你的NetBeans Platform工程目录,如下图:

第二步:进入dist目录,将发布包解压缩,如下图:


第三步:以此进入如下目录:


第四步:将org-netbeans-core-windows_testnetbeanssuite.jar再解压缩,然后逐级进入解压缩后的目录,如下图:


第五步:修改Bundle_testnetbeanssuite.properties文件中的标题信息,如下:

CTL_MainWindow_Title=George Studio
CTL_MainWindow_Title_No_Project
=George Software Demo


第六步,删除原来的TestNetBeansSuite\dist\testnetbeanssuite\testnetbeanssuite\testnetbeanssuite\modules\locale目录下的org-netbeans-core-windows_testnetbeanssuite.jar文件,然后将
刚才解压缩后的TestNetBeansSuite\dist\testnetbeanssuite\testnetbeanssuite\testnetbeanssuite\modules\locale\org-netbeans-core-windows_testnetbeanssuite文件夹,打包为org-netbeans-core-windows_testnetbeanssuite.jar文件,放到原来org-netbeans-core-windows_testnetbeanssuite.jar文件所在的目录,注意,打包后,org-netbeans-core-windows_testnetbeanssuite.jar内的文件目录应该是这样的:


以上步骤完成后,备份新打包的这个org-netbeans-core-windows_testnetbeanssuite.jar文件,以备下次使用。

然后,返回:\TestNetBeansSuite\dist\testnetbeanssuite\testnetbeanssuite\bin,运行 testnetbeanssuite.exe,这时候,
你看到启动的NetBeans Platform应用,应经是刚才自己设置的标题了,如下图:



特别说明:
如果你看到的应用标题还是原来的老标题,不是你设置的新标题,那么肯定是NetBeans Platform缓存的问题,请删除:
C:\Users\gao\AppData\Roaming 目录下的以你的应用名为名字的文件夹,对于我的这个例子,就是:
C:\Users\gao\AppData\Roaming\.testnetbeanssuite

Mac OS X下,步骤相同,不同的是删除NetBeans Platform缓存文件夹的路径不一样。
至于Mac OS X下NetBeans Platform应用的缓存目录,我没有去查看,用OSX的同学可以自己去找一下缓存目录。



posted @ 2012-09-12 17:29 George-tech 阅读(1635) | 评论 (0)编辑 收藏

NetBeans Platform ,very good,使用它开发桌面软件很方便,但是默认基于NetBeans Platform开发的软件,启动屏图片都是NetBeans自己的,如何换成我们自己的呢?按照如下步骤来:

第一步:打开你的NetBeans Platform工程目录,找到branding文件夹,如下图:

第二步:逐级进入branding目录下的startup文件夹,如下图:


第三步:在该目录下添加一个启动屏图片,如下图:


第四步:打包发布NetBeans Platform应用,如下图:


第五步:到dist目录下面,解压缩发布包,运行刚开生成的NetBeans Platform应用,如下图:





第六步:欣赏你的Splash 启动屏幕吧










posted @ 2012-09-12 16:38 George-tech 阅读(1184) | 评论 (0)编辑 收藏

MyEclipse最大的优点是,开发web应用时,可以轻松地做到:修改Java类后,在浏览器中刷新页面立刻就可以看到修改的效果,不用手动重启Web Server。

但是MyEclipse除此之外其他方面的功能,都与NetBeans差距很大。




=================================================================================================

NetBeans中也可以做到Web 应用修改后“热部署”,但是我4G的内存,每次修改后,NetBeans热部署都会内存溢出。

今天把NetBeans的各个角落菜单翻了一遍,终于找到了NetBeans中正确“热部署”的步骤
在NetBeans中开发Web项目是,应该用“调试”状态来运行Web应用,这样就可以在修改java代码后,按Alt + D,然后再按Y键来热部署更改后的文件。
注意,一定要把Web项目属性中的选项:“在保存时部署”这个选项个取消,不然会保存java文件时很慢,然后就内存溢出了,所以,一定要把这个选项给取消掉。




posted @ 2012-09-12 15:27 George-tech 阅读(2772) | 评论 (1)编辑 收藏

如果在Struts2的Action中有一个变量: private String CCustomerInfo cCustomerInfo;

则使用MyEclipse生成的它的getter方法是:getCCustomerInfo()

生成的setter方法是:setCCustomerInfo(CCustomerInfo cCustomerInfo);

 

针对类似“aTestClass”这样的类变量,IDE生成的getter和setter无法与Struts2页面上的输入框name绑定,遇到这种情况,应该将“aTestClass”这样的类变量修改成“testClass”这样的变量名,然后在生成它的getter和setter,生成的getter和setter方法应该是:

getTestClass()、setTestClass(ATestClass testClass)

posted @ 2010-10-23 13:41 George-tech 阅读(806) | 评论 (0)编辑 收藏

使用sa用户登录查询分析器,然后运行如下SQL:

exec sp_changeobjectowner 'Table_Name,'User_Name' -- 第一个参数:表名字,第二个参数:用户

posted @ 2010-09-10 11:39 George-tech 阅读(162) | 评论 (0)编辑 收藏

设置Struts2的<s:Datetimepicker />标签的样式,实例如下:

<script language="javascript" type="text/javascript">
            function setDatetimepickerStyle(){//beginDate是时间选择框的ID
                document.getElementById("beginDate").childNodes(1).style.width = "199px";  //宽度
            }
            dojo.addOnLoad(setDatetimepickerStyle);
        </script>
posted @ 2010-09-09 11:59 George-tech 阅读(676) | 评论 (0)编辑 收藏

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>漂浮层代码-演示</title>
<script language="javascript" type="text/javascript">
var suspendDivWidth = "100";  //漂浮层宽度
var suspendDivHeight = "300";  //漂浮层高度
var qqNumberArray = new Array("1205640864","1491012702");  //QQ号码列表

var lastScrollY=0;
function heartBeat(){
    var diffY,percent;
    if (document.documentElement && document.documentElement.scrollTop){
        diffY = document.documentElement.scrollTop;
    }
    else if (document.body){
        diffY = document.body.scrollTop;
    }
    else{
        /*Netscape stuff*/
    }
    percent=.1*(diffY-lastScrollY);
    if(percent>0){
        percent=Math.ceil(percent);
    }
    else{
        percent=Math.floor(percent);
    }
    document.getElementById("georgeFloatingLayer_Div1").style.top=parseInt(document.getElementById("georgeFloatingLayer_Div1").style.top)+percent+"px";
    document.getElementById("georgeFloatingLayer_Div2").style.top=parseInt(document.getElementById("georgeFloatingLayer_Div1").style.top)+percent+"px";
    lastScrollY=lastScrollY+percent;
}

//合成浮动层的内容
function getContentOfFloatingLayer(){
    var floatingLayerContent = "";
    for (var i in qqNumberArray){
        floatingLayerContent = floatingLayerContent + "<a target=\"_blank\" href=\"http://wpa.qq.com/msgrd?v=3&uin="+qqNumberArray[i]+"&site=qq&menu=yes\"><img border=\"0\" src=\"http://wpa.qq.com/pa?p=2:178069108:41\" alt=\"点击这里给我发消息\" title=\"点击这里给我发消息\"></a><br />";
    }
    floatingLayerContent = "<fieldset id=\"georgeFloatingLayerFieldset\" style=\"-moz-border-radius:8px; text-align:center;\"><legend>在线联系</legend>"+floatingLayerContent+"</fieldset>";
    return floatingLayerContent;
}

var georgeFloatingLayer_1="<DIV id=\"georgeFloatingLayer_Div1\" style='left:0;POSITION:absolute;TOP:10px;width:0;height:0;border:0px;'></div>"
var georgeFloatingLayer_2="<DIV id=\"georgeFloatingLayer_Div2\" style='background-color:#FFFFFF;right:2px;POSITION:absolute;TOP:10px;width:"+suspendDivWidth+"px;height:"+suspendDivHeight+"px;border:0;'>"+getContentOfFloatingLayer()+"</div>";
document.write(georgeFloatingLayer_1);
document.write(georgeFloatingLayer_2);

window.setInterval("heartBeat()",1);
</script>
</head>

<body>
<div style="height:900px; background-color:#FF0000; border:solid #3399FF 1px;">ffffffffffff</div>
</body>
</html>

posted @ 2010-09-09 11:22 George-tech 阅读(1464) | 评论 (3)编辑 收藏

转载自《zhangjip_love的空间》George对原文进行了改进和部分注释说明>>

----------------------------------------------------------------------------------------

前几天因系统故障把系统重装了一下,谁知用 “深圳恒波软件”开发的文件夹加密器 居然打不开了,输入密码显示“密码错误”,真是岂有此理!我的密码是固定的,怎会输错?

在网上搜索了半天,用了各类软件,通过种种实验,最后终于取得进展,虽说没有破解,但找回了我的文件,这可是几个G呀!差点把我急死!

相信还有与我有相同遭遇的网友,现推荐一下:

方法来自网络,不敢居功!

1、用7-ZIP这个软件 直接打开那个文件夹 一直往里面的文件夹点 (这个隐藏的有俩文件夹,其中一个就是了) 等到最后的时候就是你加密的那个文件夹了   你把它复制或剪切出来就OK了 。

是不是很简单呀?!!!!

2、去除文件夹的属性后,也可再次输入密码,能够打开。(不知是否是巧合)

一,打开我的电脑--->工具--->文件夹选项--->查看--->去掉“隐藏受保护的操作系统文件”前面的勾--->勾选"显示所有文件和文件夹"--->去掉"隐藏已知文件类型的扩展名,这步做完,可看到加密过的文件夹里面有三个文件。(George PS:Windows 7的话,“隐藏文件夹(大概是这个名字)的选项也要取消,就在"隐藏受保护的操作系统文件"选项的下面”)

二,开始-->运行-->CMD 然后进入加密的文件夹,如果你加密的文件夹路径名为"c:\hack",那么就在CMD下面打开hack文件夹(cd c:\hack)

三,然后接着键入:attrib -s -r -h Thumbs.ms (George PS:我的名字是“Thumbs.mn”)这一步主要是去掉 Thumbs.ms 的其他属性.这时为了方便,我们可以将Thumbs.ms重命名为123(ren Thumbs.ms 123)(George PS:如果无法重命名,可以使用如下命令:ren file://.c:/hack/Thumbs.ms 123).

四,然后接着键入:cd 123 回车后,我们可以键入dir/x来查看123文件夹里面有些什么文件,我们发现下面有:COM1~1.{D3文件夹(George ps:这个名字不固定,我的是COM1.{一大堆字符}),我们在CMD下重命名它为456,(ren COM1~1.{D3 456),如果不能重命名,则需要在123文件下新建一个名为COM1-COM9中的任何一个,这里我们就新建名为com1的文件夹为例,如果用md com1 肯定出现目录无效 ,这里我们用命令为:md \\.\c:\com1 建立就可以了,然后我们再接着重命名COM1~1.{D3文件夹(ren COM1~1.{D3 456) OK。)(George PS:如果无法重命名,可以使用如下命令:ren \\.\C:hack\COM1~1.{D3 456

五,然后接着键入:cd 456 然后再键入dir/x 查看456文件夹里面有些什么文件。发现里面有一个“ 0915~1”(George PS:同样,这个名字也不确定)文件夹,这里需要注意,0915~1文件名前面和后面是有东西的,我们可以在显示出来的文件名中复制过来,这个文件夹是不可以直接双击打开的,我们在CMD下重命名 0915~1为789(ren 0915~1 789)

六,这时,我们就可以直接进入加密文件夹中打开加密文件下的123文件夹,再打开456文件夹,再打开789文件夹下的LastF文件夹,里面的文件,就是加密的内容,结束。

原文地址:http://hi.baidu.com/zhangjip_love/blog/item/e88cc9764ba41617b051b9a2.html

--------------------------------------------------------------------------------------------------------------

George 另附一个删除顽固文件夹的方法:

在待删除的文件夹的所在盘上新建一个文本文档,把以下内容复制到这个文档,然后选择另存为 文件名填上TEST.BAT,保存类型选择所有文件,然后把你想要删除的的文件拖到TEST.BAT的图标上.

DEL /F /A /Q \\?\%1
RD /Q /S \\?\%1

posted @ 2010-06-09 16:29 George-tech 阅读(1603) | 评论 (0)编辑 收藏

  1. 1、启动Oracle

新建批处理文件:startOracle.bat

输入命令:

 

net start OracleOraHome92TNSListener
net start OracleServiceORCL
其中

OracleOraHome92TNSListener

OracleServiceORCL

是Oracle的服务名称

  1. 2、关闭Oracle

新建批处理文件:stopOracle.bat

输入命令:

 

net stop OracleOraHome92TNSListener
net stop OracleServiceORCL
其中

OracleOraHome92TNSListener

OracleServiceORCL

是Oracle的服务名称

posted @ 2010-05-17 13:43 George-tech 阅读(779) | 评论 (0)编辑 收藏

查询出一个表的所有字段信息,包括字段名、字段类型、字段长度、是都允许空值等等。

 

select * from user_tab_columns c where c.table_name = upper('表名字')

posted @ 2010-04-30 15:38 George-tech 阅读(512) | 评论 (0)编辑 收藏

现有若干腾讯微博(QQ微博)的邀请链接,在我手里也没用,现发给网友:

想要邀请链接的朋友请加群:90298926 (只限软件开发人员,谢谢)

posted @ 2010-04-30 10:57 George-tech 阅读(125) | 评论 (0)编辑 收藏

框架结构:

<frameset rows="127,*,11" frameborder="no" border="0" framespacing="0">
  <frame src="top.action" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" />
  <frame src="center.action" name="mainFrame" id="mainFrame" scrolling="auto" />
  <frame src="down.action" name="bottomFrame" scrolling="no" noresize="noresize" id="bottomFrame" />
</frameset>
<noframes>

 

当前位于框架页:top.action

需要被调用的JavaScript函数【funcA()】位于框架页:center.action

实现方法:

在top.action内:window.parent.window.frames['mainFrame'].funcA();

posted @ 2010-04-27 16:27 George-tech 阅读(1326) | 评论 (1)编辑 收藏

当sql配置文件中的元素select/insert/update中,需要使用大于号>和小于号<时,要使用

<![CDATA[

sql语句

]]> 

来将sql语句括起来,如:

<select id="test_query" parameterType="hashmap" resultType="hashmap">
        <![CDATA[
        select t.f1,t.f2

        from table t

        where t.f3 <> 1

        ]]>
        <include refid="test_sql_common" />
    </select>

posted @ 2010-04-26 11:50 George-tech 阅读(3137) | 评论 (0)编辑 收藏

分组。
含有group by 的语句,select  的字段除了group by中出现的,其余必须是聚合函数,类似max这些确定唯一一条的
SELECT a_id,max(b_id) FROM a_b GROUP BY a_id;

posted @ 2010-04-19 17:43 George-tech 阅读(226) | 评论 (0)编辑 收藏