Google
 
Web itpro-blogger.blogspot.com
金曜日, 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);
}
});






Comments: コメントを投稿

<< Home

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