﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Stuart ONE-随笔分类-Java</title><link>http://www.blogjava.net/stuart_wan/category/4584.html</link><description>我有一头小毛驴，我从来也不骑……</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 02:41:53 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 02:41:53 GMT</pubDate><ttl>60</ttl><item><title>Using anti-alias</title><link>http://www.blogjava.net/stuart_wan/archive/2006/06/25/55015.html</link><dc:creator>Stuart</dc:creator><author>Stuart</author><pubDate>Sun, 25 Jun 2006 13:28:00 GMT</pubDate><guid>http://www.blogjava.net/stuart_wan/archive/2006/06/25/55015.html</guid><wfw:comment>http://www.blogjava.net/stuart_wan/comments/55015.html</wfw:comment><comments>http://www.blogjava.net/stuart_wan/archive/2006/06/25/55015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stuart_wan/comments/commentRss/55015.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stuart_wan/services/trackbacks/55015.html</trackback:ping><description><![CDATA[set anti-alias for graphics:<br>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING，<br>RenderingHints.VALUE_ANTIALIAS_ON);</span></div><br>
<br>
set anti-alias for components:<br>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;Making&nbsp;a&nbsp;JTextArea&nbsp;use&nbsp;anti-Alias&nbsp;fonts<br></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;only&nbsp;works&nbsp;in&nbsp;JDK&nbsp;1.5+</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 0, 0);">jtextArea.putClientProperty(<br>com.sun.java.swing.SwingUtilities2.AA_TEXT_PROPERTY_KEY,<br>Boolean.TRUE&nbsp;);&nbsp;</span></div><br>
<img src ="http://www.blogjava.net/stuart_wan/aggbug/55015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stuart_wan/" target="_blank">Stuart</a> 2006-06-25 21:28 <a href="http://www.blogjava.net/stuart_wan/archive/2006/06/25/55015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Netbeans IDE 5.0 beta</title><link>http://www.blogjava.net/stuart_wan/archive/2005/11/08/18746.html</link><dc:creator>Stuart</dc:creator><author>Stuart</author><pubDate>Tue, 08 Nov 2005 05:09:00 GMT</pubDate><guid>http://www.blogjava.net/stuart_wan/archive/2005/11/08/18746.html</guid><wfw:comment>http://www.blogjava.net/stuart_wan/comments/18746.html</wfw:comment><comments>http://www.blogjava.net/stuart_wan/archive/2005/11/08/18746.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/stuart_wan/comments/commentRss/18746.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stuart_wan/services/trackbacks/18746.html</trackback:ping><description><![CDATA[公司最近在开发一个JAVA Swing的c/s系统，用JAVA做c/s系统的比较少，在此记录我的点滴收获。<br>
（现在只是完成了UI的大体设计。事件没写，数据库也没有连。）<br>
<br>
一.Introducing netbeans 5.0 beta<br>
  采用的IDE是SUN的Netbeans 5.0 beta。完全免费：）<br>
<br>
-matisse<br>
  我想最重要的一个新特征应该是新加入的free design，这是一个完全可以自定义的layout，使用起来非常方便。但是，这个Layout也非常不稳定，经常会出错，这点在下面会详细说明。<br>
-Internationalization<br>
  这个在以前的版本里也有，我认为这是一个非常方便的I18N工具。后面也会详细说明。<br>
<br>
更多的特征可以查看netbeans的网站上关于<a href="http://www.netbeans.org/community/releases/50/index.html">5.0新特征</a>的说明。<br>
<span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"></span><br>
<br>
二.Compare to the Eclipse platform, i think netbeans is easier for u to create a UI program<br>
  跟Eclipse相比，我认为Netbeans更易于编写UI程序，他的UI设计更方便。（不过我不喜欢Netbeans的界面，还是觉得Eclipse更清新）<br>
  当然，在Eclipse里也有很多插件可以设计UI，但是很多好的插件是要钱的，公司可不能用:)，比如我觉得<a href="http://cloudgarden.com/jigloo/">Jigloo</a>就不错。<br>
<br>
三.步步精简<br>
  首先，在开发的最开始我们狂用Free Design，当时觉得真是方便阿，跟以前用4.1的时候用GridBagLayout慢慢调不可同日而语，开发速度大大提升。<br>
接
下来发现问题了，用Free
Design生成的代码非常多，而且很乱，更要命的是有的时候在编辑UI的时候，拖拽控件会发生错误，很是烦人。（其实我觉得有的时候虽然会发生错误，但
是只要耐心的多调整一下，也是可以实现的）。另外一个问题是，是用Free
Design需要单独另外引入一个jar包，没有包含在jdk5.0里。于是领导同志发话了，为了避免各方面麻烦，我们不用Free
Design了，还是改成用GridBagLayout。（我想sun在以后的版本里可得好好调整一下这个Free
Desing了，这可是一个非常方便的layout阿，以后如果能做到象vb一样那么方便，那可是有革命性滴，hehe）<br>
我其实特别没耐心，非常
不愿意用GridBagLayout，但是没办法阿，于是乖乖地用了。不过慢慢的发现GridBagLayout也非常方便，而且
当你运行后，拖拽窗口不会影响里面控件的位置。另外生成的代码很整齐，也精简了不少。不错！（他的缺点就是可设置的参数太多了，如果不用IDE要一次次的
自己运行程序来看效果慢慢调）<br>
接下来问题又来了，我们程序的主窗口左边是一个Jtree，通过点击右边显示相应的内容。所以我们要将做好的
Dialog放到一个主窗口的右
边的Panel里，而且里面的控件（比如说表格）要随着主窗口的拖放变化大小，可是在gridbaglayout里我们都把大小钉死了。领导同志又想出好
主意了：简化layout，尽量用简单的layout，比如borderlayout,
flowlayout等，然后将一个Panel分为好几个Panel，将主panel设为borderlayout或者其他，依情况而定。这些
layout虽然可调控性不强，但是代码很简单；另外便于以后调整。例如我们的一堆button本来是在页面下方的，想要调整到上方去，那么如果是以前的
gridbaglayout，那么要调好久。现在，只用简单的设置borderlayout就可以了，可以将下方的panel位置设为north，然后把
上方的panel设为south就可以了，这样其实根本不用IDE，直接改代码就可以。<br>
  进行这次调整后，当托放主窗口时，表格的大小也随之改变了。就我看来，borderlayout好像只有中间位置,即center位置的panel才能随 着窗口拖放变化，所以我们把表格都是放在center位置的Panel里的，不知道是不是这样设计的。<br>
<br>
  从开发过程的三次调整中，我发现，其实用Java Swing编程，真正牛的还是直接用代码来编！精简的才是最好滴。<br>
<br>
四. Problems we met and our solution：<br>
1.我们要做中文和英文两个版本，how？<br>
这
里我们就用到了前面提到的internationalization，首先在某个package里新建一个properties文件（在others那
个里面）。在这个properties文件里可以添加各种locale，我们在这里只添加zh_CN，另外的一个自动建立的
default.language。建立完成后，先在某个Dialog的编辑状态下，点击上面的tools-&gt;
internationalization-&gt;internationalize，在弹出的对话框里选择刚才建立的properties文件，系统
会自动搜索你的文本区域，并且命名好这个key，你在下面填入key值就可以了。这是填入的key值是default
language的，接下来可以右键点击建立好的properties文件，选择open，这时可以看到你所建立的几种locale都列出来了，直接在这
里翻译吧，系统会自动将中文转成UTF-8码。这样做完后，启动程序时会根据不同的locale显示不同的文字，哈哈：）爽～<br>
几点补充说明：<br>
1）
选择tools-&gt;internationalization-&gt;internationalize自动搜索文本区域时，会经常找不到所
有的文本区域，可以关掉重新再找。往往这样还是不行，这时候就要手动改了，自己去看看生成的代码吧。还可以直接选择properties栏里text后面
的按钮，在下拉框选择resourcebundle，然后也可以填写。选择还是很多滴。<br>
2）例如JTable里的文字，你可以选择
properties里的model后面的按钮，选择From Connection，选择user
code自己写代码。“java.util.ResourceBundle.getBundle("YourPropertiesFileName").
getString("KeyNameInPropertiesFile"))”<br>
2.日期选择<br>
 某些Dialog里面要选择日期，所以需要做一个日期选择框dateSelector。开源的好处体现出来了，从sourceforge上面找了一个叫<a href="http://sourceforge.net/projects/jcalendar">JCalendar</a>的项目，直接用上，呵呵。（不过要注意说明copyright哦！）<br>
3.Jtable的Title双行显示（不是用html实现）<br>
Jtable
的确不太好调整，自己写代码编仿彿又很麻烦。比如我就碰到了表格内容很多，这个时候就需要将有些Title双行显示，才能显得美观。虽然
jdk5.0支持html，但是领导建议不要用，那就不用把，在Java
CodeGuru上找到了个类MultiLineHeaderRenderer，放在工具包里，直接调用就可以了，呵呵（同样注意标明出处）。另外，在
JavaGuru上还有跨行Title的类，不过我们没有用。(http:
//www.codeguru.com/java/articles/126.shtml，另外还有RowHeader的类http:
//www.codeguru.com/java/articles/127.shtml)<br>
<br>
其实还有很多碰到的难点，通过上网查资料和自己摸索，都解决了，有问题就google吧:)<br>
<br>
五.Some skills of netbeans<br>
  netbeans的技巧有很多，我就不在这多说了，说几个我觉得比较有用的：<br>
  <quote>Ctrl+Shift＋F    自动引入需要的包<br>
  Ctrl+Space or Ctrl+\    出提示输入<br>
  Ctrl+Shift+Space    show javadoc dialog<br>
进行重命名时，用Refector, 会自动修改所有相关的地方<br></quote>
<br>
六. Concluding<br>
  算起来从接触netbeans到现在UI的设计基本完成，还不到一个月的时间，还有很多不足之处，大家多多指教。<img src ="http://www.blogjava.net/stuart_wan/aggbug/18746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stuart_wan/" target="_blank">Stuart</a> 2005-11-08 13:09 <a href="http://www.blogjava.net/stuart_wan/archive/2005/11/08/18746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>