Google
 
Web itpro-blogger.blogspot.com
木曜日, 5月 25, 2006

[HTML]メモ

▼質問
ボタン名称を改行(折返し)表示したい。

▼回答
「 」を入れると折り返される。


■参考
「&#数字;」や「&キーワード;」を指定すると特殊文字などが表示できる。
【HTMLの特殊文字 : IT用語辞典 e-Words】
http://e-words.jp/p/r-htmlentity.html


水曜日, 5月 24, 2006

[JSP]jspを動かす(Tomcat)

■サーブレット・コンテナのTomcatをインストール

■関連サイト
【The Ja-Jakarta Project - Tomcat翻訳】
http://www.jajakarta.org/tomcat/
【連載:Tomcatを使う「JSPプログラミング」 第1回】
http://www.atmarkit.co.jp/fjava/rensai/jsp01/jsp01.html

▼質問
クラスのフォルダ位置を設定するにはどうするのか?

▼回答
Tomcatの下記フォルダ内にある「wrapper.properties」ファイルを編集する。
「\jakarta-tomcat-3.3.2\conf\jk」
ファイル内の「wrapper.class_path」に下記を追加する。
「wrapper.class_path=$(wrapper.tomcat_home\classes)\」

▼質問
web.xmlに記述する要素って何?




▼回答
イベントリスナは、要素を使ってイベントが発生するときに起動されるリスナクラスを定義する。
要素は、要素と 要素のすぐ後ろで定義し、要素の
すぐ前に記述します。それぞれのイベントタイプに複数のリスナクラスを定義できる。


月曜日, 5月 15, 2006

[Java]グラフィック(透過色)

▼質問
Javaで図形を描画したりするときに色を透過したい。

▼回答
Colorクラスのカラー設定にアルファ値が設定できるからそれを使えば実現できる。

例)赤を透過指定して描画する。
public void paint(Graphics g){
Color c = new Color(Color.red.getRed(), Color.red.getGreen(), Color.red.getBlue(), 32);
g.setColor(c);
//g.setColor(Color.red);
g.fillRect(0, 0, 100, 100);
}


土曜日, 5月 13, 2006

[Java]変数・定数・配列・文字列・日付・時刻

▼質問
JavaでVBみたいなEnum型はないのか?

▼回答
ないみたい!?でも、バージョン1.5からサポートされるらしい。

列挙型
http://wisdom.sakura.ne.jp/programming/java/java5_6.html

Javaの疑問 - Javaをはじめて疑問におもったこと。
http://www.hyuki.com/yukiwiki/wiki.cgi?Java%a4%ce%b5%bf%cc%e4

▼質問
JavaにVBやC言語のような構造体はないのか?

▼回答
ないみたい!クラスのオブジェクトを使って実現するみたい!?

http://homepage3.nifty.com/teranet/jac/JavaAndC.html

▼質問
文字列を数値に変換するにはどうしたらよいのか?

▼回答
2種類の方法があるらしい。
String str;
int a = Integer.valueOf(str).intValue();
int b = Integer.parseInt(str);

■参考サイト
【Javaの道:(2.文字列から数、数から文字列へのデータ変換)】
http://www.javaroad.jp/java_number2.htm

▼質問
日付を表示するにはどうしたらよいのか?

▼回答
Date tm = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy'年'MM'月'dd'日'");
System.out.println(sdf.format(tm));
sdf.applyPattern("yyyy/MM/dd");
System.out.println(sdf1.format(tm));

▼質問
Javaには、可変配列のようなものはないのか?VBのようなRedim Preserve(動的配列)のような後から
サイズ変更ができるようなもの!

▼回答
あるよ!ArrayListクラスが実行時の動的配列が可能なクラスだ。

▼質問
YYYY/MM/DD形式とYYYYMMDD形式の日付をDate型で取得したいときはどうするんだい?

▼回答
こんな関数を作ってみたけど、どうかな?

■呼び方
Calendar testCalendar = Calendar.getInstance();
String strDate = "20000101";
testCalendar = setCalendar( strDate );
if ( testCalendar == null ) System.out.println( "NULL" );
Date date = testCalendar.getTime()
strDate = "2006/09/09";
testCalendar = setCalendar( strDate );
if ( testCalendar == null ) System.out.println( "NULL" );
Date date = testCalendar.getTime()


■変換関数
private Calendar setCalendar( String strDate ) {
int year = 0, month = 0, date = 0;
Calendar makeCalendar = Calendar.getInstance();
if ( strDate.split( "/" ).length > 2 ) {
// YYYY/MM/DD形式
if ( strDate.split( "/" ).length < 3 ) return ( null );
String[] val = strDate.split("/");
year = Integer.valueOf( val[0] ).intValue();
month = Integer.valueOf( val[1] ).intValue();
date = Integer.valueOf( val[2] ).intValue();
}
else {
// YYYYMMDD形式
if ( strDate.length() < 8 ) return ( null );
year = Integer.valueOf( strDate.substring( 0, 4 ) ).intValue();
month = Integer.valueOf( strDate.substring( 4, 6 ) ).intValue();
date = Integer.valueOf( strDate.substring( 6, 8 ) ).intValue();
}
makeCalendar.set( year, month, date );
return ( makeCalendar );
}

この関数にはバグがあった。(^^;
カレンダークラスに値をセットする時は月をマイナス1しないといけないのね!
逆に値をゲットする時はプラス1をしないと駄目なのね!

修正すると下記の箇所が
makeCalendar.set( year, month, date );
から
makeCalendar.set( year, month-1, date );
なる。

▼質問
日付のフォーマットで23時間制と24時間制を指定するにはどうしたらいいの?

▼回答
23時間制は、Hを指定するとできるよ。24時間制は、kだよ。

▼質問
日数を求めたい時はどうするんだい!

▼回答
こんな関数を作ってみたけど、どうかな?

private int getDays( Date from, Date to ) {
Calendar fromDate = Calendar.getInstance(); // 日付(From)
fromDate.setTime( from );

Calendar toDate = Calendar.getInstance(); // 日付(To)
toDate.setTime( to );

// ミリ秒取得
long diff = (toDate.getTime()).getTime() - (fromDate.getTime()).getTime();
int days = (int)(diff / (24*60*60*1000));

return days;
}

■参考サイト
【[JavaHouse-Brewers:28526] Re: 日数の計算】
http://java-house.jp/ml/archive/j-h-b/028526.html

▼質問
カレンダークラスを生成するときに、タイムゾーンを指定しないとどうなるの?
Calendar calendar = Calendar.getInstance();
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("JST"));

▼回答


▼質問
小文字を大文字に変換するにはどうするの?

▼回答
文字列クラスのtoUpperCaseを使えば変換できるよ。だけど、英文字だけしか変換されないよ!
数字は大文字にならないみたい・・・。

ネットで探したらこんなサンプルがあった。(^^)v
■参考サイト
http://www7a.biglobe.ne.jp/~java-master/samples/string/HankakuNumberToZenkakuNumber.html

▼質問
final変数って何だ?Eclipseを使っていると警告の候補として出てくるから
そのままわからずに使っていたけど・・・(^^;←そんなんでよいのかと怒られそうだが。。。

▼回答
finalをつけて宣言すると、変数に値を代入しても値が変わらないから、間違えて代入しても
プログラムの意味が変わらないようにできるメリットがあるようだ。

メソッドの入力パラメータには、finalをつけた方がよいと言うことなのかな?

■参考サイト
【[java] final 変数を使う】
http://www.soi.wide.ad.jp/class/20030028/slides/03/32.html
【[Java Memo] About final】
http://www02.so-net.ne.jp/~komori/doc/java/final.html


金曜日, 5月 12, 2006

[Java]メモ1

▼質問
『シリアライズ可能クラス MessageBox は long 型の static final serialVersionUID
フィールドを宣言していません。』のメッセージが出る。

▼回答
Eclipse3.1以降のデフォルトでのシリアライズ可能クラスチェックの警告。
『ウィンドウ(W)』→『設定』→『Java』→『コンパイラー』→『エラー/警告』
→『潜在的なプログラミングの問題(P)』→『serialVersionUIDなしのシリアライズ可能クラス(Z)』
を『警告』から『無視』にするといいらしい。

■参考サイト
http://ivory.ap.teacup.com/applet/omron58/msgcate6/archive

▼質問
『serialVersionUID』って何?

▼回答
『!』の警告アイコンをクリックするとメニューが表示するので、その中から『デフォルト・シリアル・バージョン
IDの追加』をクリックすると下記のコードが追加されて警告が消えた。

/**
*
*/
private static final long serialVersionUID = 1L;

他のメニューにある『生成シリアル・バージョンIDの追加』で追加しても同じ結果が得られた。

/**
*
*/
private static final long serialVersionUID = 8219119111923576514L;

【>Java オブジェクト直列化仕様: 4 - クラス記述子】
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/serialization/spec/class.doc6.html

■参考サイト
【SaikyoLine.jp: serialVersionUIDって。】
http://saikyoline.jp/weblog/archives/2005/09/serialversionui.html
【SuppressWarnings (Java 2 Platform SE 5.0)】
http://www.ep.u-tokai.ac.jp/~nakazato/API/1.5.0/docs/ja/api/java/lang/SuppressWarnings.html

▼質問
CanvasクラスにPanelクラスを追加することはできるのか?

▼回答
できない?!PanelクラスにCanvasクラスに追加することは可能である。

▼質問
Panelに追加したCanvasがrepaintしても再描画されない。

▼回答
removeらしい。「createImage」、「getGraphics」、「drawImage」を使用しての
ダブルバッファリングの仕方に問題があったようだ。前回のイメージを取得して描画するという事を考えて
処理をしないと描画されないのはなぜなのかがわからない。ドツボにはまる!

▼質問
描画したCanvasに透明のLabelを貼りたい。

▼回答
うまくできなかったが、CanvasをComponentに変えたらうまくいった!?透明のLabelにはSwingのラベル
クラスのJLabelを使用した。このラベルは、デフォルトで透過状態になっている。

class Test extends Component
{
public Test() {
this.setLayout(null);
JLabel jlabel = new JLabel("JLabel");
jlabel.addMouseListener(jlabel);
this.add(jlabel).setBounds(0, 0, 100, 20);
}
}

■参考サイト
【アプリケーション・フレーム/Hello World】
http://www.asahi-net.or.jp/~DP8T-ASM/java/tips/AppFrameHelloWorld.html

▼質問
Javaには、VBのような参照渡し(ByRef)とか値渡し(ByVal)はあるの?

▼回答
Javaでは、オブジェクトと配列を渡すと参照渡しでそれ以外は値渡しらしい。

■参考サイト
【Q&Aピックアップ「はじめから学ぶJava」】~値渡しと参照渡しの違い
http://edu.nikkeibp.co.jp/edu/column/c_qa/41221/index.html
【VB 値型と参照型】
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
【Chapter 01 基本構文の変化 - @IT】~引数の値渡し(ByVal)と参照渡し(ByRef)のデフォルト
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_01/vbnet2_01_03.html

▼質問
extendsに複数のクラスを継承させたいがっ!できないのか?

▼回答
できない。方法としては、段階的に継承するか?!インターフェイスを使ってするらしい。

▼質問
テキストフィールド(TextField)の初期状態で日本語入力にしたができるのか?

▼回答
できるみたい。このサイトの通りにやったらうまくできました。素晴らしい♪感謝!感謝!感謝!ですね!!

【【Swing】 IMEの切り替え】
http://dev105.souko105.net/index.php?%A1%DASwing%A1%DB%20%A3%C9%A3%CD%A3%C5%A4%CE%C0%DA%A4%EA%C2%D8%A4%A8

TextField txt = new TextField(5);
txt.addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent e) {
e.getComponent().getInputContext().setCharacterSubsets(new Character.Subset[] { InputSubset.KANJI });
}
public void focusLost(FocusEvent e) {
e.getComponent().getInputContext().setCharacterSubsets(null);
}
});


This page is powered by Blogger. Isn't yours?