火曜日, 2月 27, 2007

日本の野鳥を分類し、一覧できるように、Javaアプリを組んでみました。

Motacilla alba

写真は、ハクセキレイ。顔が白く、目に黒い線が通っているのが特長だそうです。保護色でまぎれてますが、拡大して見てみてください。

日本の野鳥を分類し、一覧できるように、Javaアプリを組んでみました。

こちらです → 日本の野鳥
写真は、ハクセキレイ。顔が白く、目に黒い線が通っているのが特長だそうです。

Javaアプリで、日本の野鳥を分類し、一覧できる

月曜日, 2月 26, 2007

JTree, TreeNode (DefaultMutableTreeNode), And TreePath Classes

JTree class is a handy tool to manipulate tree structured data. It takes care of how the data is presented graphically, and does all the editing, adding and deleting of the tree nodes. I would like to put a few notes, or precautions, for JTree and all related classes, which would makes it more valuable to Java programmers -- since all JTree, TreeNode (DefaultMutableTreeNode), and TreePath classes are involved, and the documentations might not be there for -- those who need them.

First of all, you must have this in mind -- JTree takes care of how the tree is presented whereas DefaultMutableTreeNode does all the structual data manipulation such as adding or deleting a TreeNode. My point here is this -- there are JTree and DefaultMutableTreeNode and JTree is not equipped with method that can access to a TreeNode object. JTree must access to TreeNode via TreePath. The following code shows the process, to collapse a tree node.


TreeNode list[]=node.getPath();
TreePath path=new TreePath(list);
tree.collapsePath(path);


The TreePath can point to a TreeNode, and PathComponent and TreeNode is used in method names interchangeably, so this can be confusing. This line shows how to get the selected TreeNode of a JTree.


DefaultMutableTreeNode selectedNode=
(DefaultMutableTreeNode) tree.getLastSelectedPathComponent();


Lastly, this will collapse all the TreeNode in a JTree.


void collapseNode(DefaultMutableTreeNode n)
{
for (Enumeration e=n.postorderEnumeration(); e.hasMoreElements() ; )
{
DefaultMutableTreeNode node=(DefaultMutableTreeNode)e.nextElement();
TreeNode list[]=node.getPath();
TreePath path=new TreePath(list);
if(!node.isRoot())
{
tree.collapsePath(path);
}
}
}

日曜日, 2月 25, 2007

BugMeNot -- 公開ユーザー情報のレポジトリ

ユーザー登録を要求するサイト対策に、BugMeNot という公開ユーザー情報のレポジトリがあります。

わずらわしいユーザー登録も、これで一挙にパス!できます。

IDとパスワードを要求するサイトに、このオープン・ユーザー情報でログインすると、ユーザー登録のために、いちいちフォームに書き込んで...手間がはぶけます。

企業に、情報を渡す、その情報を企業が利用する...などいう、精神的な苦痛を逃れるためにも! ぜひ利用してみてください。

BugMeNot のサイトはこちら → BugMeNot

FireFox には、便利なエクステンションがあります。 → Install BugMeNot 1.3

土曜日, 2月 24, 2007

The Use of A Thread Class

Here is a short reminder for Thread class -- the use of a Thread class in a class that implements a Runnable interface. My point is pretty simple. Supply _this_ argument at construction time! The file will compile all right but the thread won't start if the argument is null.

If you ever care, try with this one. The following link will lead you to the page that will start a Java applet that shows a circle that changes its size with time. The source file is linked on that same page. Here is this:

Thread thread=new Thread(this);

ThreadTest

金曜日, 2月 23, 2007

米、夏時間の開始日を3月11日に変更

米国の夏時間の開始日が、3月11日に変更されたため、ソフトウエアのアップデートが推奨されています。

ALERT: U.S. Time Zone Changes March 11, 2007
The U.S. is in the process of changing the observance of Daylight Savings Time (DST). Update your JRE.

U.S. Daylight Saving Time Changes in 2007

Java SE Download → Java SE Downloads

Microsoft,夏時間に起因する問題を警告

木曜日, 2月 22, 2007

ヒンディー語の入力

WindowsのIMEで、ヒンディー語の半子音を入力するには、子音の入力後、ハル(QWERTY配列で、D)を入力し、次の文字を入力すると得られる。

Keyboard layouts

परमाणु बम parmanu bomb, atomic bomb

ナーガリー文字を学びたい人に↓

ヒンディー語のかたち (単行本)

ナーリヤル・パーニー(नारियल पानी ココナツ水)売りの声の録音がある(ここをクリック)。ココナツ水を、懸命に売り歩く、インド人の生活がある。迫力がある。

火曜日, 2月 20, 2007

Java AWT Font setting and TimeZone setting for DateFormat

I just noticed a few things while testing a refurbished machine so I am writing those out here for those who might get stranded in such things. The first one is about AWT Font class. The Font obtained from the Graphics objec won't be used to derive other types of Font object with different font sizes and so on. The way to change fonts is just to create one.

Font large=new Font("Sans Serif",Font.PLAIN,50);
g.setFont(large);

Another thing is about Calendar and DateFormat matter. It is about setting TimeZone. It just is that using DateFormat.setTimeZone(TimeZone) is the way to do it and not to get instance of the Calendar object. Like this:

TimeZone est=TimeZone.getTimeZone("US/Eastern");
Calendar calendar=Calendar.getInstance();
Date date=calendar.getTime();
dateFormat.setTimeZone(est);
String estTimeString=timeFormat.format(date);

Perhaps the above can be illustrated more precisely in a running application. Here is a source file of a Java clock application that shows the time and date in JST and EST time -- Japan and Eastern Standard Time. The application should compile with JDK 6.0.

Source: JavaClock.java

(The above file is modified to adjust the text width in various language environment as of 2007-02-22)

Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...