- PR -

WindowsXP(JRE1.6) JTextFieldで変換候補が表示されません

1
投稿者投稿内容
未記入
会議室デビュー日: 2008/01/15
投稿数: 11
投稿日時: 2008-12-02 16:24
お世話様になっております。

JavaSolution内で検索しましたが、同じような質問が無かった為
投稿させていただきました。

==環境==================
OS:Windows XP Professional XP2
java:1.6.0_10-b33
ime:Microsoft IME Standard 2003
========================

Swingにて入力テキストフィールドを持つフレームを作成し実行したところ、
テキストフィールドで文字を変換しようとしても変換候補リストが見えません。
(通常、メモ帳でひらがなの「あ」を入力してスペースキーを2回押下すると
変換候補リストが表示されるかと思います。)

変換候補リストが見えていない状態で、変換を確定しないままフレームから
フォーカスをはずし、もう一度フレームにフォーカスをあてると
変換候補リストが見えるようになります。

作成したフレームを同じjavaバージョンのVista端末(IMEはMicrosoft Office IME 2007)で
実行すると、変換候補リストが表示されます。
また、javaバージョン1.4.1_05環境(OSはWindows XP Professional XP2)で
実行しても変換候補リストは表示されます。

どうにかして変換候補リストを表示させたいと考えております。
解決方法をご存知の方、ご教授お願い致します。

以下に、現象が発生するソースコードを記します。
=====================================
import java.awt.*;
import javax.swing.*;
import java.awt.Rectangle;

public class TestFrame extends JFrame {
JTextField jTextField1 = new JTextField();

public TestFrame() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}

private void jbInit() throws Exception {
getContentPane().setLayout(null);
jTextField1.setText("");
jTextField1.setBounds(new Rectangle(27, 38, 309, 33));
this.getContentPane().add(jTextField1);
this.setSize(500, 300);
}

/**
* メイン
*/
public static void main(String[] args) {
TestFrame testframe = new TestFrame();
testframe.setVisible(true);
}
}
=====================================
未記入
会議室デビュー日: 2008/01/15
投稿数: 11
投稿日時: 2008-12-02 18:50
いつもお世話様になっております。
投稿者です。追記させていただきます。

sunのjava:1.6.0_10 リリースノートを確認したところ、
変換候補リストが表示されない現象は既知の問題として載っていました。
回避策は
「まず、ウィンドウを非アクティブにする (デスクトップをクリックする)。
次に、ウィンドウをアクティブにする (テキスト領域をクリックする)。
この時点で、IM 候補ウィンドウが表示されます。」との事でした。

作成したフレームで回避策を実行してみると、確かに表示されました。
(変換中(変換候補リストは見えていない状態)にデスクトップをクリックし、
フレームにフォーカスをあてると変換候補リストが表示されました)

しかし、この場合テキストフィールドに入力する度にこの操作を行なわなければならない為、
回避策として使用したくありません。
また、javaのバージョンはWindowsXP java:1.6_07で確認したところ、この問題は発生しませんでしたが、1.6.0_10-b33バージョンでフレームを動作させたいと思っています。

他の回避策、または
強引に変換候補リストを表示させる方法等ご存知でしたら
ご教授お願い致します。

sunのjava:1.6.0_10 リリースノートリンク
<http://java.sun.com/javase/ja/6/webnotes/6u10.html>
↓上記リンクが見られない場合はこちらのキャッシュを参照してください。
<http://72.14.235.132/search?q=cache:_KWcojKvePIJ:java.sun.com/javase/ja/6/webnotes/6u10.html+java+jtextfield+%E5%80%99%E8%A3%9C%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%80%80%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84&hl=ja&ct=clnk&cd=2&gl=jp>

ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2008-12-03 08:44
JRE6u11で直った感じがします。
http://java.sun.com/javase/ja/6/webnotes/6u11.html
未記入
会議室デビュー日: 2008/01/15
投稿数: 11
投稿日時: 2008-12-03 18:38
いつもお世話様になっております。

JRE6u11(java version 1.6.0_11-b03)のリリースノートを拝見し、
バグフィクスされていることを確認しました。
また、WindowsXP JRE6u11環境でテストしたところ、
実際に変換候補ウィンドウが表示されることも確認しました。

JRE6u10からJRE6u11へのバージョンアップが可能かどうか検討しておりますが、
JRE6u10で変換候補ウィンドウが出せるようであればJRE6u10でいきたいと考えております。

現在、InputMethodRequestsのgetTextLocationメソッドを実装すると
候補ウィンドウの表示位置を操作できる事は分かりましたが、
表示させるようなメソッドは見当たりませんでした。

強引に変換候補リストを表示させる方法等ご存知の方がいましたら、
ご教授お願い致します。
未記入
会議室デビュー日: 2008/01/15
投稿数: 11
投稿日時: 2008-12-10 18:16
お世話様になっております。
投稿者です。追記させていただきます。

調査しておりましたが、変換候補ウィンドウの表示方法は見つかりませんでした。
JRE6u11へバージョンアップで対応したいと思います。

この度はありがとうございました。

以上
1

スキルアップ/キャリアアップ(JOB@IT)