Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Java 8がサポートが強化されました。

...

Java 8上でNexawebの<window/>, <dialog/>などのフローティングコンテナ上でPluginアーキテクチャを用いてSwingプラグインなどを使用している場合、マウスイベントが正しく処理されない場合があります。>などのフローティングコンテナ上でマウスイベントが正しく処理されない場合があります。

この問題を解決するために、新しくSwingLayerdPane機能が追加されました。

SwingLayerdPaneはJava 8が使用されている場合に自動的に有効化されますが明示的に機能を無効化するためのオプションが追加されています。8が使用されている場合に自動的に有効化されますが、明示的に機能を無効化するためのオプションが追加されています。

Pluginアーキテクチャを用いていない場合はSwingLayerdPane機能を使用する必要が無いため、以下のオプションによって明示的にSwingLayerdPaneの機能を無効化してください。フローティングコンテナを用いていない場合はSwingLayerdPane機能を使用する必要が無いため、以下のオプションによって明示的にSwingLayerdPaneの機能を無効化してください。

--- nexaweb-client.xml によるSwingLayerdPaneの無効化設定(抜粋) ---------

...

NXPSR-11106Tomcat 8 上で 実行するためのサポート
NXPSR-11082[互換性][Java 8]: 非アクティブウインドウをマウスクリックした場合、マウスクリックイベントが正しく発生しない
NXPSR-11083[Java 8]: Java 8上で動作する際に表示される「The JVM was not recognized or untested」ボタンの表示解除
NXPSR-11089[互換性][Java 8][*]: モーダルダイアログをvisible="false"を使用して非表示にした場合、アプリケーションが操作不可能になる場合がある
NXPSR-11090[互換性][Java 8][*]: <desktopPane/>内に配置されたUIコンポーネントが他ウインドウ上のユーザーオペレーションによって点滅する場合がある
NXPSR-11091[互換性][Java 8][*]: ダイアログを閉じた場合、ターゲットでは無いダイアログも一緒に閉じられる場合がある
NXPSR-11092[互換性][Java 8][*]: ポップアップが表示されない
NXPSR-11093[互換性][Java 8][*]: ドラッグ&ドロップオペレーションが無効になる
NXPSR-11094[互換性][Java 8][*]: ドラッグ&ドロップオペレーション中の自動スクロール機能が無効になる
NXPSR-11095[互換性][Java 8][*]: ドラッグ&ドロップオペレーション中のドロップターゲットの境界線がハイライトされない
NXPSR-11096[互換性][Java 8][*]: ドラッグ&ドロップオペレーションによるドロップターゲットのドロップイベントが発生しない
NXPSR-11097[互換性][Java 8][*]: MCO内のJavaコードによって追加されたポップアップメニューが表示されない
NXPSR-11098[互換性][Java 8][*]: <gridTable/>内で<lockedColumn/>が使用されている場合、横スクロールした際にヘッダが揺れて表示される
NXPSR-11099[互換性][Java 8][*]: SwingLayeredPaneを使用した場合、ウインドウ/ダイアログのドロップシャドウが表示されない
NXPSR-11101[互換性][Java 8][*]: ドラッグ&ドロップオペレーション中にドロップターゲット上に移動した場合、ドロップターゲットのハイライト表示が遅い

...

NXPSR-11100[互換性][Java 8][FR]: nexaweb-client.xml に<layered-pane-type/>オプション設定項目を追加


Known issue:

NXPSR-11084[互換性][Java 8]: Nexawebアプリケーション内でキーボードイベントが発生しなくなる場合がある

...

    }

    public void run() {

      // フォーカスを設定する

      _old.setAttribute("focused", "true");

...

    Element old = current;  // モーダルアラート表示前にフォーカスを保持していたコンポーネントの取得

    DisplayService ds = cs.getDisplayService();

...

    getSession().getUiUpdateQueue().invokeLater(new FocusSetterTask(old));  // 代替手段の適応箇所    old.setAttribute("focused", "true");

    try {

      PrintService[] services PrinterJob printJob = PrinterJob.lookupPrintServicesgetPrinterJob();

      if (services.length > 0) {        // PrintJob

        PrinterJob printJob = PrinterJob.getPrinterJob();

        printJob.setPrintService(services[0]);

        printJob.setCopies(1);

        (Printerに関するコードは中略)

      // PrinterJob#printDialog() によるプリンターダイアログの表示

              printJob.printDialog();      }

    } catch(Exception e) {

      e.printStackTrace();// TODO Printerに関連する例外処理

    }

  }

 ---